首页 > web前端 > js教程 > 为什么 Array.prototype.fill() 创建共享对象引用,以及如何避免它?

为什么 Array.prototype.fill() 创建共享对象引用,以及如何避免它?

DDD
发布: 2024-12-18 17:46:14
原创
678 人浏览过

Why Does Array.prototype.fill() Create Shared Object References, and How Can I Avoid It?

Array.prototype.fill() 引用而不是创建新实例

尝试使用 Array.prototype.fill( 初始化数组时),当填充值为对象时,行为可能会出现意外。在这种情况下,对同一对象的引用存储在数组的每个元素中,导致意外共享属性和行为。

要解决此问题,建议使用诸如 map() 之类的替代方法为数组中的每个元素创建对象的新实例。这可以通过首先用任意值填充数组,然后将每个元素映射到一个新对象来实现:

var arr = new Array(2).fill().map(u => ({}));
登录后复制

或者,您可以使用 Object() 作为映射器为每个元素创建一个新对象数组元素:

var arr = new Array(2).fill().map(Object);
登录后复制

通过采用这些技术,您可以确保填充数组中的每个元素都是独立的对象,从而消除与共享相关的潜在问题参考文献。

以上是为什么 Array.prototype.fill() 创建共享对象引用,以及如何避免它?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板