我想从该函数的范围内直接更新函数参数引用的对象。一个例子:
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() 之类的库工具,但似乎可能有一些本机语法可以让我做到这一点,而我只是找不到它?..
我花了一些时间寻找,否则我尽量不问这样的问题。我也知道还有其他与此类似的帖子,但与我所要求的完全不一样,而且我在这里没有能够直接回复帖子等的“声誉”,所以我没有看到一个简单的集中讨论的方式。无论如何,感谢您的帮助!