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