關於javascrip引用對象的說明

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章