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

时间:2015-11-17 18:58:31

标签: javascript ecmascript-6

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

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

groups[0] // --> [ 1 ]
groups[1] // --> [ 1 ]

所以它不只是用空数组填充groups,而是用同一个空数组填充groups! 这是预期的行为还是将来会发生变化?

1 个答案:

答案 0 :(得分:2)

根据spec,这是预期的行为。该值未被克隆。