如果 a = {x: {}}
设置obj = a.x;
那么当 x变化时。 obj没有变化。
举例node运行:
var a = {x: {name: 'hello'}}
// undefined
var obj = a.x
// undefined
obj
// {name: "hello"}
a.x = {m: 1, n: 2}
// {m: 1, n: 2}
obj
// {name: "hello"}
obj是a.x的引用地址,a.x换了指向, ovj还是指向赋值的地址。希望变化,直接引用对象本身: obj = a, 或者修改对象属性;
var b = {x: {name: 'hello'}}
// undefined
var obj2 = b.x
// undefined
obj2
// {name: "hello"}
b.x.name = 'world'
// "world"
obj2
// {name: "world"}