Array.prototype.fill() dengan Objek: Perkongsian Rujukan, Bukan Penciptaan Contoh
Apabila menggunakan Array.prototype.fill() dengan sesuatu objek, adalah penting untuk ambil perhatian bahawa ia menghantar rujukan kepada contoh objek yang sama dan bukannya mencipta kejadian baharu untuk setiap elemen. Tingkah laku ini ditunjukkan oleh kod berikut:
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)
Untuk mengelakkan perkongsian rujukan ini dan memastikan setiap elemen memegang contoh objek yang unik, fungsi map() boleh digunakan:
var arr = new Array(2).fill().map(u => ({})); var arr = new Array(2).fill().map(Object);
Dalam kes ini, map() mencipta objek baharu untuk setiap elemen, menghapuskan isu perkongsian rujukan.
Atas ialah kandungan terperinci Adakah `Array.prototype.fill()` Mencipta Kejadian Objek Baharu atau Kongsi Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!