透過引用傳遞變數允許函數修改呼叫上下文中的原始變數。雖然 JavaScript 沒有真正的引用傳遞,但它確實提供了實作類似功能的方法。
要修改物件的內容,請將它們依值傳遞給函數。 JavaScript 允許修改物件屬性,如下例所示:
function alterObject(obj) { obj.foo = "goodbye"; } var myObj = { foo: "hello world" }; alterObject(myObj); alert(myObj.foo); // "goodbye"
使用數字索引迭代數組屬性以修改單一儲存格:
var arr = [1, 2, 3]; for (var i = 0; i < arr.length; i++) { arr[i] = arr[i] + 1; }
請注意,真正的按引用傳遞(在呼叫上下文中修改簡單變數)在JavaScript中不可能。下面的範例說明了這個概念:
function swap(a, b) { var tmp = a; a = b; b = tmp; } var x = 1, y = 2; swap(x, y); alert("x is " + x + ", y is " + y); // "x is 1, y is 2"
與 C 不同,JavaScript 不支援真正的參考傳遞,其中函數可以修改呼叫上下文中的簡單變數。相反,JavaScript 只允許傳遞可修改物件的引用,這會修改它們的內容,但不會修改它們的引用。
以上是如何在 JavaScript 中模擬引用傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!