我想直接更新該函數的範圍內的函數參數引用的對象。舉個例子:javascript Object.assign()的功能
var thisObj = { "val" : "original value" };
function modFunc(objRef) {
objRef = { "val" : "modified" };
console.log(objRef); // { "val" : "modified" }
}
console.log(thisObj); // { "val" : "original value" };
我理解爲什麼會這樣,我意識到,我可以用
objRef.val = "modified";
內modFunc進行修改。對於我的項目,雖然具體原因,我想是能夠完成這樣的:
function modFunc(objRef) {
objRef.self = { "val" : "modified" }; // Of course this will not work,
// but is there an Object property or method that allows one to access
// the actual memory pointer being referenced by the variable?
}
在那裏我可以指定我想直接修改thisObj引用新的對象,我實例中modFunc。這可能嗎?我知道有像Object.assign()這樣的工具可以用來做這件事,但它不是普遍支持的,或者像bind()這樣的庫工具,如果我導入了庫,我可以使用它,但它看起來好像可能有一些本地語法,這將允許我這樣做,我只是一直無法找到它?..
我花了一些時間看,否則我儘量不要問這樣的問題。我也知道還有其他類似的帖子,但這並不完全像我所要求的,我沒有'名譽'這裏能夠直接回復帖子等,所以我沒有看到一個簡單的重點討論的方式。無論如何,感謝您的幫助!
好的,謝謝你,這正是我所問的。我只是希望有辦法做到這一點,比我一直在考慮的解決方法更直接一點。我想我會把它放在那裏,看看是否有人有一個直接的解決方案。感謝您的回覆! – jtrick 2012-07-26 19:54:27
[https://groups.google.com/group/comp.lang.javascript/msg/d11c1e0674e0be28]涉及'arguments'對象,它允許通過引用調用機制,但它是這裏沒有用。 – 2012-07-26 20:17:14
@ScottSauyet哇,那個線程... – Pointy 2012-07-26 20:23:32