JavaScript语言是传递引用还是按值传递语言?
对象的原始类型Vs也不同吗?
答案 0 :(得分:8)
它实际使用名为call by sharing的评估策略。
所有类型都按值传递。没有pass-by-reference,否则你将能够修改在函数的调用站点声明的变量的内容。通常人们会说在JS中通过引用传递对象。它们实际上是通过共享传递的,这意味着您可以修改对象的属性,这些更改对于持有对该对象的引用的人来说是可见的,但引用本身是不可修改的。
答案 1 :(得分:5)
答案 2 :(得分:1)
除了原始之外的所有内容都通过引用传递 几乎所有JavaScript都是一个对象。 正如Sirko所说,对象通过引用传递。
所以函数/数组/对象都是通过引用传递的,无论你是在谈论附加到var的根对象,还是你在讨论对象的属性/方法,链接3个点,或者你是在一个对象数组中讨论数组中的对象,作为对象的属性......