JavaScript:by referenc(傳參考、傳址)與 by value(傳值)差異
今天來探討 JavaScript 中,by referenc(傳參考)與 by value(傳值)差異。
by value(傳值)
- 宣告 a 變數後,再宣告變數 b 並將 a 值賦予值給變數 b
- 然而要將 a 值賦予值到變數 b 時,會額外開新的記憶體空間
- 因此變數 a 與變數 b 是不同的記憶體空間,彼此沒有關聯
- 所以後續儘管進行
b++;
運算也不會影響到變數 a
1 |
|
by reference(傳參考、傳址)
- 宣告 a 變數後,再宣告變數 b 並將 a 值賦予值給變數 b
- 但因為兩者皆是物件,物件本身有個記憶體空間,因此 a 變數與 b 變數會指向到同一個物件記憶體空間
- 賦予新值給 b.name,此時 a.name 的結果也會被修改
- 原因是因為 a 與 b 變數都指向同一個記憶體空間物件
- 因此不論修改哪個變數裡面的屬性,都是針對同一個記憶體空間修改
- 陣列內的 value 也會跟物件一樣有傳參考特性
1 |
|
參考資料
希望我的文章能夠幫助到你,有任何問題或是想與我討論交流,歡迎透過留言與我分享你的觀點。
如果你喜歡我的文章,想支持我繼續撰寫更多文章,歡迎你:
- 將我的部落格加入書籤,隨時造訪部落格。
- 將我的文章分享給你的親朋好友。
- 透過 LikeButton 幫我按 5 下讚。
- 每月贊助 LikeCoin 請我喝杯咖啡。(雖然我不喝咖啡啦 XD)
本站所有文章除特別聲明外,均採用 BY-NC-SA 許可協議。轉載請註明出處!