javascript Object.assign() functionality
javascript Object.assign() functionality
我想直接更新该函数范围内的函数参数所引用的对象。一个例子:
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(?。。
我花了一些时间看,否则我尽量不问这样的问题。我也知道还有其他类似的帖子,但没有什么能像我所问的那样,而且我在这里没有直接回应帖子等的"声誉",所以我没有找到一个简单的方法来集中讨论。不管怎样,谢谢你的帮助!
您所要求的基本上是通过引用的调用机制,或者显式创建对变量的引用的能力。在JavaScript中,这是不可能的。您可以(正如您所注意到的)传递对对象的引用,并使用这些引用来修改对象属性值(甚至添加和删除属性),但这并不完全相同。
这将是javascript不支持的真正的引用赋值。它只支持错误的、被误解的引用赋值。
由于不能处理引用,因此可以简单地将objRef
作为全局变量,而不将其作为arg传递。那么您正在更新原始对象。
相关文章:
- 如何使用object.assign()从其他对象引用基本对象属性
- 依次调用location.reload()和location.assign()
- Object.assign(),函数方法和内存使用
- 是否可以使用Object.assign来克隆带有其方法的对象
- Issues with window.location.assign
- 何时需要使用Object.assign()方法来复制对象的实例
- 将函数参数传递给Object.assign
- window.location.assign(varString)不起作用
- javascript Object.assign() functionality
- “Object.assign()”polyfill中“Object(target)”的用途是什么
- 通过location.assign()传递url哈希
- Javascript Object Composition with assign & Object.creat
- Lodash - .extend() / .assign() 和 .merge() 之间的区别
- _.assign 仅当属性存在于目标对象中时
- Object.assign 和 just as assign 之间的区别
- 由 Object.Assign() 函数生成的复制对象具有副作用
- location.href 属性与 location.assign() 方法
- 使用 Object.create() 和 Object.assign() 创建对象有什么区别?
- Initial Handlebars.js None Functionality
- 使用object.assign()添加到对象中的getter发现闭包变量的值错误