📅  最后修改于: 2023-12-03 15:38:59.181000             🧑  作者: Mango
在 JavaScript 中,当我们将一个对象传递给一个函数时,它通常是引用传递,并且函数将引用原始对象。这意味着函数和呼叫者都引用同一个对象,因此任何一个对该对象的修改都会影响另一个。
Markdown 代码片段:
在 JavaScript 中,当我们将一个对象传递给一个函数时,它通常是引用传递,并且函数将引用原始对象。这意味着函数和呼叫者都引用同一个对象,因此任何一个对该对象的修改都会影响另一个。
为了更好地理解,考虑以下示例:
let obj = {name: 'Alice', age: 30};
function changeObj(user) {
user.age = 25;
}
changeObj(obj);
console.log(obj); // {name: 'Alice', age: 25}
在这个例子中,我们定义了一个名为 obj
的对象,并将其传递给名为 changeObj
的函数。在此期间,我们将 obj
的 age
属性更改为 25
。当我们在 console.log
语句中打印 obj
对象时,我们会注意到 age
属性已经更改为 25
。
这证明了在 JavaScript 中,对象是通过引用传递而不是值传递的。这是因为对象在 heap 中创建,而指向对象的变量实际上只存储指向对象的引用。因此,当对象传递给函数时,函数得到的是与原始对象相同的引用,因此它们指向相同的对象。
总结: