我想直接更新该函数的范围内的函数参数引用的对象。举个例子: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