首页 >web前端 >js教程 >JavaScript 中的引用传递与值传递:对象和基元在函数调用中的行为如何?

JavaScript 中的引用传递与值传递:对象和基元在函数调用中的行为如何?

DDD
DDD原创
2024-12-20 21:44:09176浏览

Pass-by-Reference vs. Pass-by-Value in JavaScript: How Do Objects and Primitives Behave in Function Calls?

JavaScript 传递引用与传递值

JavaScript 同时采用按值传递和按引用传递机制。基元(例如数字和字符串)按值传递,这意味着在被调用的函数中创建基元的副本。相反,非基元(主要是对象)通过引用传递。

对于对象,传递的是对象的引用而不是副本。这意味着修改被调用函数中的引用变量不会影响调用者中的引用,如提供的示例所示:

var a = { key: 'value' };
replace(a); // a still holds its original value
update(a); // a's contents change

与矩形函数的混淆

问题中的示例包含一个带有 my 参数的嵌套函数矩形。该参数最初未定义,但在函数内定义。这样设置的原因是为了提供一种在矩形函数与其内部区域函数之间共享数据的方法。

虽然 my 参数最初并未在矩形函数中定义,但它是通过引用传递的对象引用。因此,当它在矩形函数内分配时,它会创建一个对对象的新引用,该对象可以在矩形函数和区域函数内修改,即使区域函数不直接接收 my 参数。

以上是JavaScript 中的引用传递与值传递:对象和基元在函数调用中的行为如何?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn