它实际上使用一种称为共享调用的评估策略。所有类型都是按值传递的。没有按引用传递,否则您将能够修改在函数调用站点声明的变量的内容。通常人们说在JS中对象是按引用传递的。实际上它们是按共享传递的,这意味着您可以修改对象的属性,并且这些更改将对那些持有该对象引用的人可见,但引用本身是不可修改的。
除了原始类型,其他所有类型都是按引用传递的。 在JavaScript中,几乎所有东西都是对象。 正如Sirko所说,对象是按引用传递的。 因此,无论您是在谈论附加到变量的根对象,还是在谈论一个对象的属性/方法,链式3点深度,或者您正在谈论数组中的对象,作为对象的属性,在对象数组中...