Array.prototype.fill():将对象作为引用传递
Array.prototype.fill() 方法是一个方便的实用程序使用指定值初始化数组。但是,当用对象填充数组时,对象将作为引用传递,而不是创建新实例。这种行为提出了一个问题:是否有办法确保数组的每个元素都是唯一的对象。
考虑以下示例:
var arr = new Array(2).fill({}); console.log(arr[0] === arr[1]); // true
在此示例中,有两个对象创建并作为对 arr[0] 和 arr[1] 的引用传递。修改数组的一个元素会影响另一个元素,因为它们是同一个对象:
arr[0].test = 'string'; console.log(arr[1].test); // 'string'
要使用 Array.prototype.fill() 为数组的每个元素创建一个新对象,您可以按照这些步骤:
var arr = new Array(2).fill().map(u => ({}));
此方法确保数组的每个元素都是一个独特的对象,与其他对象隔离:
arr[0].test = 'string'; console.log(arr[1].test); // undefined
以上是使用Array.prototype.fill()时如何确保对象唯一?的详细内容。更多信息请关注PHP中文网其他相关文章!