JavaScript 傳遞參考與傳遞值
JavaScript 同時採用按值傳遞和按引用傳遞機制。基元(例如數字和字串)按值傳遞,這意味著在被呼叫的函數中建立基元的副本。相反,非基元(主要是物件)透過引用傳遞。
對於對象,傳遞的是對象的引用而不是副本。這表示修改被呼叫函數中的引用變數不會影響呼叫者中的引用,如提供的範例所示:
var a = { key: 'value' }; replace(a); // a still holds its original value update(a); // a's contents change
與矩形函數的混淆
問題中的範例包含一個帶有my 參數的巢狀函數矩形。此參數最初未定義,但在函數內定義。這樣設定的原因是為了提供一種在矩形函數與其內部區域函數之間共享資料的方法。
雖然 my 參數最初並未在矩形函數中定義,但它是透過引用傳遞的物件參考。因此,當它在矩形函數內分配時,它會建立一個對物件的新引用,該物件可以在矩形函數和區域函數內修改,即使區域函數不直接接收 my 參數。
以上是JavaScript 中的參考傳遞與值傳遞:物件和基元在函數呼叫中的行為如何?的詳細內容。更多資訊請關注PHP中文網其他相關文章!