0
我用forEach
它的行为有点不同,那么我记得。通常我只是为元素分配一个新的值,但这次不起作用。难道它在嵌套数组中不能正常运行?Array.prototype.for每个重新分配的元素
现在的片段:
//works
this.array[0].forEach((ele,ind,arr)=>{
arr[ind] = 'E'; //works fine
});
//fails
this.array[0].forEach((ele,ind,arr)=>{
console.log(ele); //element is empty
ele = 'E';
console.log(ele); //element is 'E'
});
我会假设元素本身是由价值复制的,而不是参考。
我看了Mozilla Docs但我找不到任何关于它的东西。
这是一个非常大胆的声明。这不完全是按照价值。当值作为引用传递时(如数组),那么它的行为就像引用传递一样 - 如果我们改变item,它就会传播到数组中。如果我们改变数组的引用,它确实表现为按值传递。一团糟。 – lustoykov
不要将**通过**引用与通过** ** **引用混淆。但是你是对的,通过传递参考,我们可以实现类似的效果,如果JavaScript通过引用传递的话。不过,JavaScript严格按照价值传递。 –
然而,在我的理解中,按值传递会创建对象/数组的副本,根本不会传递引用。在wiki中,你链接了 >也就是说,当函数返回 – lustoykov