[javascript] call by reference 還是 call by value?

在 javascript 中,究竟是 call by value 還是 call by reference? 讓我們嘗試執行以下的例子及程式碼測試看看 上面這段程式碼,我們用 add() 將 a 加 1,但實際上並沒有真正的讓 a=2,可以猜測在這個例子中,函式 num 為 a 的複製,而不是真正對 a 的實體做加減。 上面這段程式碼,我們用 empty() 將 a 的值改為空字串,如上面那個例子,str 也是 a 的複製,不是對 a 的實體操作。   在上面這段程式碼,我們可以發現在物件則是對實體進行操作。   從上面這個例子看起來卻不是完全的 call by reference,   因此大概可以發現在 javascript 中,對於 Primitive type(Number、 String及Boolean等)為 call by value。 在物件、陣列及函式時則為 call by reference。(當然有一些爭議) […]

Continue reading