了解 JavaScript 的按引用传递与按值传递
在 JavaScript 中,传递给函数的参数始终按值传递。这意味着将创建原始值的副本,并且原始值不会受到对副本所做的任何更改的影响。但是,当值是对象(包括数组)时,创建的副本是对原始对象的引用。
这个概念会影响变量在函数内修改时的行为:
例如:
function f(a, b, c) { a = 3; // Re-assigns a to a new primitive value b.push("foo"); // Adds a new property to b, modifying the referenced object c.first = false; // Modifies a property of the referenced object }
在此示例中,x, y,函数外的 z 将具有以下值:x 保持不变为 4(原始值),y 现在具有附加属性 ["foo"](添加的对象属性),并且 z.first 是设置为 false(对象属性已修改)。
要创建对象的完全独立副本,需要显式地将其所有属性复制到新对象。这可以使用 Object.assign() 方法或通过遍历对象并基于旧对象创建具有新属性的新对象来完成。
以上是JavaScript 的值传递机制如何影响函数中的基元变量和对象变量?的详细内容。更多信息请关注PHP中文网其他相关文章!