Melalui Objek ke Array.prototype.fill() melalui Rujukan
Apabila memulakan tatasusunan dengan panjang tetap menggunakan kaedah fill() , menetapkan objek sebagai nilai menghasilkan semua elemen tatasusunan merujuk objek yang sama dan bukannya mencipta kejadian baharu. Ini boleh membawa kepada tingkah laku yang tidak diingini apabila mengubah suai elemen tatasusunan.
Contoh:
var arr = new Array(2).fill({}); console.log(arr[0] === arr[1]); // true arr[0].test = 'string'; console.log(arr[1].test); // 'string'
Mengelakkan Hantaran Rujukan:
Untuk mencipta tatasusunan objek dengan setiap elemen adalah contoh yang berbeza, elakkan menggunakan fill() secara langsung dengan objek. Sebaliknya, ikut pendekatan alternatif ini:
Fungsi Peta:
Isi tatasusunan dengan nilai pemegang tempat (cth., tidak ditentukan) dan gunakan map() untuk mengubah setiap elemen menjadi objek baharu:
var arr = new Array(2).fill().map(u => ({}));
Kilang Objek Fungsi:
Gunakan fungsi yang mengembalikan objek baharu untuk mengisi tatasusunan:
var arr = new Array(2).fill().map(Object);
Dengan menggunakan teknik ini, anda boleh memastikan setiap elemen dalam tatasusunan adalah individu objek, mengelakkan rujukan yang tidak diingini lulus dan mengekalkan pengasingan objek.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Lulus Rujukan Apabila Menggunakan Array.prototype.fill() dengan Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!