Array.prototype.fill() 與物件:參考共享,而不是實例建立
當將Array.prototype.fill()與對像一起使用時一個對象,重要的是要注意它傳遞對同一對象實例的引用,而不是為每個元素創建新實例。以下程式碼示範了此行為:
var arr = new Array(2).fill({}); arr[0] === arr[1]; // true (they point to the same object) arr[0].test = 'string'; arr[1].test === 'string'; // true (changes made to one object are reflected in the other)
為了避免這種引用共享並確保每個元素保存唯一的物件實例,可以使用map() 函數:
var arr = new Array(2).fill().map(u => ({})); var arr = new Array(2).fill().map(Object);
在這些情況下,map() 會為每個元素建立新對象,從而消除引用共享問題。
以上是`Array.prototype.fill()` 是否建立新的物件實例,或共用參考?的詳細內容。更多資訊請關注PHP中文網其他相關文章!