在 JavaScript 中透過引用傳遞變數
JavaScript 缺乏其他程式語言中存在的「透過引用傳遞」的概念。但是,它允許按值傳遞對象,從而允許函數修改其內容。
以值傳遞物件
要在函數中修改物件的內容,請傳遞物件本身作為參數:
function alterObject(obj) { obj.foo = "goodbye"; } var myObj = { foo: "hello world" }; alterObject(myObj); console.log(myObj.foo); // "goodbye"
修改數組
要修改數組的元素,請迭代其數字索引並單獨更新每個單元格:
var arr = [1, 2, 3]; for (var i = 0; i < arr.length; i++) arr[i] = arr[i] + 1;
JavaScript中的「按引用傳遞」
JavaScript 缺乏真正的「透過引用傳遞」功能。這意味著不可能在函數呼叫中修改原始變數的值,這與 C 等語言不同。
在下面的範例中,交換x 和y 的值會失敗,因為它們是按值傳遞的,不能直接在函數內修改:
function swap(a, b) { var tmp = a; a = b; b = tmp; } var x = 1, y = 2; swap(x, y); console.log("x is " + x + ", y is " + y); // "x is 1, y is 2"
結論
而JavaScript不提供傳統意義上的“按引用傳遞”,傳遞物件並操作其內容允許類似的功能。請注意,此技術修改物件內容,而不是物件參考本身。
以上是JavaScript 如何處理變數傳遞和物件修改?的詳細內容。更多資訊請關注PHP中文網其他相關文章!