gpt4 book ai didi

javascript - 传递后是否可以覆盖对象?

转载 作者:行者123 更新时间:2023-12-03 06:48:06 25 4
gpt4 key购买 nike

请参阅以下示例:

var foo = { bar : 0 };

function modify(obj)
{
obj = {};
}

modify(foo);

console.log(foo);

我在全局范围内的第一个对象保持不变。因为该函数没有替换对象,而是替换了引用的副本。

所以我的问题很简单。有谁知道解决方法,或者当前正在开发中是否有 ECMAScript 功能,或者是否尝试过使这成为可能?

谢谢。

最佳答案

您无法更改调用您的变量的绑定(bind)。但由于您收到对同一对象的引用,因此您可以修改该对象本身。因此您可以删除所有属性:

function modify(obj) {
Object.keys(obj).forEach(function(k) {
delete obj[k];
});
}

var foo = { a: 3 };
console.log(foo);
modify(foo);
console.log(foo);

关于javascript - 传递后是否可以覆盖对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37629172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com