傳參照呼叫 Call by reference
傳參照呼叫
傳遞給函式的是它的實際參數的隱式參照而不是實參的拷貝。
1 | function fn (a) { |
傳共享物件呼叫 Call by sharing
傳共享物件呼叫
對於呼叫者而言在被呼叫函數裡修改參數是沒有影響的。如果要達成傳參照呼叫的效果就需要傳一個共享物件,一旦被呼叫者修改了物件,呼叫者就可以看到變化(因為物件是共享的,沒有拷貝)。
1 | function fn (a) { |
由此可知兩點:
- 對傳入的參數進行
點運算、中括號
賦值等操作會是Call by reference
- 對傳入的參數進行
物件實字宣告
賦值等操作會是Call by sharing
參考資料
六角學院 - JavaScript 核心篇
JavaScript 核心觀念(29)-物件-Call by Reference 還是 Call by Sharing