如果 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"}