Javascript Array.prototype.fill引用类型的预期行为

Javascript Array.prototype.fill引用类型的预期行为,javascript,ecmascript-6,Javascript,Ecmascript 6,我知道这是未来的技术,但MDN并不涵盖所有用例,几乎任何环境都已经支持这种方法。下面是我担心的一个例子: var groups = new Array(4); groups.fill([]); groups[0].push(1); groups[0] // --> [ 1 ] groups[1] // --> [ 1 ] 所以它不仅用空数组填充组,而且用同一个空数组填充组! 这是一种预期的行为,还是将来会发生变化?这是一种预期的行为,根据具体情况而定。该值未被克隆。[]只是一个与

我知道这是未来的技术,但MDN并不涵盖所有用例,几乎任何环境都已经支持这种方法。下面是我担心的一个例子:

var groups = new Array(4);
groups.fill([]);
groups[0].push(1);

groups[0] // --> [ 1 ]
groups[1] // --> [ 1 ]
所以它不仅用空数组填充
,而且用同一个空数组填充

这是一种预期的行为,还是将来会发生变化?

这是一种预期的行为,根据具体情况而定。该值未被克隆。

[]
只是一个与其他值相同的值<代码>填充不会费心克隆它,为什么会问题是,在ECMA-6中,从构造函数数组初始化对象数组的可读性同样高。:-)@使者:<代码>数组(4).填充(0).映射(数组)?@Bergi去过那里,试过了<代码>映射传递3个不需要的参数;-)