理解 JavaScript 中的按值传递和按引用传递
在 JavaScript 中将值或对象传递给函数时,这一点至关重要了解按引用传递和按值传递的概念。简而言之,基元(例如数字、字符串、布尔值)是按值传递的,这意味着函数内所做的任何更改都不会影响函数外部的原始值。
但是,对象是通过“副本”传递的一个参考。”这意味着当一个对象被传递给一个函数时,会创建一个对原始对象的新引用。函数内对对象内容所做的任何更改都会影响原始对象。
案例研究:矩形函数示例
在提供的示例中,我们有一个矩形函数它需要一个配置对象和一个可选的我的对象。在内部,如果参数中不存在,它会定义一个本地 my 对象。这个 my 对象存储了矩形的长度和宽度。
矩形函数中的面积函数使用 my 对象中存储的长度和宽度计算矩形的面积。
当我们调用矩形函数并将返回的对象分配给 myRec,我们创建对 my 对象的引用的副本。在矩形函数中对 my 的内容所做的任何更改(例如,更新 my.l 和 my.w)都将反映在 my 和 myRec 中,因为它们引用相同的底层对象。
但是,如果我们尝试在矩形函数内覆盖对 my 的引用,这不会影响调用者持有的引用的副本(myRec)。这是因为引用是按值传递的,这意味着在函数内将新对象分配给 my 只会修改本地引用,而不是调用者持有的引用。
以上是JavaScript 中的值传递与引用传递:它们如何影响函数参数?的详细内容。更多信息请关注PHP中文网其他相关文章!