gpt4 book ai didi

javascript - JS局部变量改变全局

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

在下面的脚本中,我无法理解为什么通过更改本地(私有(private))对象 local 来更改对象全局中的属性 prop?

var global = {}
global.prop = "Global init";

var ChangeState = (function () {
var local = global;
local.prop = "Changed"; // expecting Global init?

})()

alert("Global = " + global.prop)

我不是要求JS改变全局,但它还是改变了它?请帮忙。

最佳答案

global 的值是对对象的引用。

在函数内,将该引用复制到本地

然后,您可以更改该对象的 prop 属性的值。

由于 globallocal 引用同一个对象,因此 global.proplocal.prop 将始终是相同的值。

参见this other question有关如何创建对象副本而不是引用副本的详细信息。

关于javascript - JS局部变量改变全局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408021/

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