js函數參數傳遞按引用傳遞的疑惑

在《js高級程序設計》中是這麼描述參數傳遞的:函數

  • ECMAScript 中全部函數的參數都是按值傳遞的
    我對這句話有所疑惑,疑惑在哪呢?請你們看


《js高級程序設計》是這麼解釋的:
以上代碼中建立一個對象,並將其保存在了變量 person 中。而後,這個變量被傳遞到 setName() 函數中以後就被複制給了 obj。在這個函數內部, obj 和 person 引用的是同一個對象。換句話說,即便這個變量是按值傳遞的,obj 也會按引用來訪問同一個對象
what?? 按值傳遞爲何也會訪問同一個對象,那這不就是按照引用傳遞嗎?? 我思考了好久,發現多是我沒搞明白這裏按引用傳遞與按值傳遞的含義
這裏的按引用傳遞指的是直接傳遞堆內存中的數據
咱們知道基本類型的數據是存放在棧內存中的,而引用類型的數據是存放在堆內存中的,定義一個對象實際上是在棧內存中存儲了一個指針,這個指針指向堆內存中該對象的存儲地址。

明白了這個概念這個疑惑就能解答了,固然,這是我我的的理解,若是不對,盡請指教。
相關文章
相關標籤/搜索