gpt4 book ai didi

javascript - javascript中的作用域表现得很奇怪

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

对象在 javascript 中与它们的引用一起传递。从任何地方都应该反射(reflect)该对象的含义变化。
在这种情况下,console.log(a) 的预期输出是 {}

function change(a,b) {
a.x = 'added';
a = b;//assigning a as {} to b
}
a={}
b={}
change(a,b);
console.log(a); //expected {} but output {x:'added'}
console.log(b)

这里发生了什么?据我所知,这不应该是因为功能范围。
谢谢

最佳答案

如果您添加了另一行,您可以更清楚地了解正在发生的事情:

function change(a,b) {
a.x = 'added';
a = b;
a.x = 'added as well';
};
a={};
b={};
change(a,b);
console.log(a); //{x:'added'}
console.log(b); //{x:'added as well'}

当你在做 a = b您正在分配局部变量 a引用 b持有。

关于javascript - javascript中的作用域表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30930560/

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