JavaScript 中的引用傳遞與值傳遞
在JavaScript 中將資料傳遞給函數時,了解引用傳遞和引用傳遞之間的區別至關重要並按值傳遞。這種差異影響資料在函數和呼叫者之間共享和修改的方式。
按值傳遞
對於原始資料類型(字串、數字、布林值),JavaScript總是會以值傳遞。這意味著創建原始值的副本並將其傳遞給函數。函數內對副本所做的任何變更都不會影響函數外的原始變數。
依引用傳遞
物件(包括陣列)依引用傳遞在 JavaScript 中。這意味著該函數接收物件的引用,而不是副本。函數內對物件屬性所做的任何變更都會影響函數外部的原始物件。
範例
考慮以下函數:
function f(a, b, c) { a = 3; b.push("foo"); c.first = false; }
使用下列參數呼叫時:
var x = 4; var y = ["eeny", "miny", "mo"]; var z = {first: true}; f(x, y, z);
獨立物件複製
要建立物件的完全獨立副本,需要使用一種建立具有相同屬性值但不引用原始物件的新物件的方法。常見的方法是使用 JSON.parse(JSON.stringify()) 技術:var newObject = JSON.parse(JSON.stringify(originalObject));
以上是JavaScript 中按值傳遞和按引用傳遞有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!