关于html:JavaScript是按引用传递还是按值传递?

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

本问题已经有最佳答案,请猛点这里访问。

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

原始类型与对象是否不同?


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

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


对象通过引用传递,而原语通过值传递。

注意,原语值包括以下内容:

  • 布尔
  • undefined
  • null

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


除了原语以外的所有东西都是通过引用传递的。Javascript中的所有内容都是一个对象。正如Sirko所说,对象是通过引用传递的。

所以函数/数组/对象都是通过引用传递的,不管您是在谈论附加到var的根对象,还是在谈论对象的属性/方法,链接3个点的深度,或者您是在谈论数组中的对象,作为对象的属性,在对象数组中……