オブジェクトを使用した 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 中国語 Web サイトの他の関連記事を参照してください。