1. 程式人生 > >js連續賦值

js連續賦值

保存對象 undefined ons fin 解析 defined ole 對象 efi

var a={n:1}

a.x=a={n:2}

console.log(a.x);

undefined

變量a保存對象{ n : 1 }的內存地址

a. x = a; a對象新增x屬性,x屬性也指向{ n :1 } 的內存地址, 此時 a 對象結構為

{

  n:1,

  x:{n:1}

}

隨後a = { n : 2 },意思是a重新指向 { n : 2 }這個對象的內存地址,這個對象裏面沒有x屬性;

所以a.x是undefined;

也可以把上面的代碼這麽解析:

var a={n:1}

a.x={n:1}

a={n:2}

console.log(a.x);

undefined

js連續賦值