首頁 > web前端 > js教程 > `Array.prototype.fill()` 是否建立新的物件實例,或共用參考?

`Array.prototype.fill()` 是否建立新的物件實例,或共用參考?

Mary-Kate Olsen
發布: 2024-12-19 11:56:09
原創
988 人瀏覽過

Does `Array.prototype.fill()` Create New Object Instances, or Share References?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板