鍍金池/ 問(wèn)答/HTML5  HTML/ Array對(duì)象的fill方法延伸不太懂,這段代碼的結(jié)果有點(diǎn)疑惑?

Array對(duì)象的fill方法延伸不太懂,這段代碼的結(jié)果有點(diǎn)疑惑?

var arr = Array(3).fill({}) // [{}, {}, {}];
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]

在看填充數(shù)組元素的函數(shù)fill(),第一行將一個(gè)有三個(gè)元素的數(shù)組填充為空對(duì)象可以理解
第二行賦值第一個(gè)元素為{hi: 'hi'}

為什么最后數(shù)組會(huì)變成所有元素都是{hi: 'hi'}呢?

回答
編輯回答
局外人

因?yàn)槎假x值為同一個(gè){},也就是數(shù)組的3個(gè)元素都指向同一個(gè)引用。

2017年3月30日 20:48