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

Is JavaScript pass-by-reference or pass-by-value?

本文关键字:按值传递 按引用传递 JavaScript      更新时间:2023-09-26

JavaScript语言是引用传递语言还是值传递语言?

对象的基元类型Vs也不同吗?

它实际上使用了一个名为共享调用的评估策略。

所有类型都是通过值传递的。没有传递引用,否则您就可以修改在函数调用位置声明的变量的内容。通常人们说JS中的对象是通过引用传递的。它们实际上是通过共享传递的,这意味着你可以修改对象的属性,这些更改对那些拥有该对象引用的人来说是可见的,但引用本身是不可修改的。

对象通过引用传递,而基元通过值传递。

注意,基元值包括以下内容:

  • 数字
  • 字符串
  • 布尔值
  • undefined
  • null

您可以在MDN的函数中找到更多详细信息。

除基元外的所有内容都通过引用传递
JavaScript中几乎所有的东西都是一个对象。正如Sirko所说,对象是通过引用传递的。

因此,函数/数组/对象都是通过引用传递的,无论你是在谈论附加到var的根对象,还是在谈论一个对象的属性/方法,链接到3点深,或者你在谈论数组中的对象,作为对象的属性,在对象数组中。。。