gpt4 book ai didi

javascript - 为什么对象的属性在赋值给对象时会是未定义的?

转载 作者:行者123 更新时间:2023-11-28 06:07:39 31 4
gpt4 key购买 nike

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
console.log(foo.x) // undefined

我意识到变量将对象存储为引用。 foo.x 不就是另一个变量吗?为什么它不能将引用指向对象?

最佳答案

扩展你所做的事情:

var foo = {n: 1}; // foo = ref#1
var bar = foo; // bar = ref#1
foo.x = foo = {n: 2}; // (ref#1) foo.x = foo (ref#2); foo = ref#2;
console.log(foo.x) // ref#2.x ... which is undefined (from ref#2)
console.log(bar.x) // ref#2 ... which is ref#1

关键是 foo.x 首先被评估,这会导致对 ref#1 的引用...然后分配ref#2

关于javascript - 为什么对象的属性在赋值给对象时会是未定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36684826/

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