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