首页 >web前端 >js教程 >JavaScript 是按值传递还是按引用传递?

JavaScript 是按值传递还是按引用传递?

Barbara Streisand
Barbara Streisand原创
2024-12-21 08:23:10700浏览

Does JavaScript Pass by Value or by Reference?

JavaScript:按引用传递或按值传递

JavaScript 是按引用传递还是按值传递?

JavaScript 采用了一种混合方法,通过值传递基元,通过“副本”传递对象(包括数组)。参考。”

理解值传递

原始数据类型(例如字符串、数字、布尔值)被复制并作为独立值传递。更改函数中传递的基元的值不会影响原始变量。

理解引用传递

对象引用内存地址,传递时它们引用与调用者相同的对象。在函数中对对象内容所做的更改将反映在原始对象中。但是,分配新引用(例如 ref = {})只会修改引用的本地副本,而不是原始引用。

示例用法

在提供的代码片段:

  • shape 函数接受一个配置对象,提取属性,并返回一个新的对象。
  • 矩形函数通过引入附加属性并返回新对象来扩展形状。
  • 原始属性名称(在 myShape 和 myRec 中)在函数中保持不受影响,因为它按值传递。
  • 对象属性 my(在 myRec 中)表示对原始对象的复制引用,允许修改其内容(例如,my.l 和我的.w)。分配新的引用不会影响原始对象。
  • area() 函数使用 my 的本地引用来计算和访问更新的对象属性。

以上是JavaScript 是按值传递还是按引用传递?的详细内容。更多信息请关注PHP中文网其他相关文章!

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