js函数传递机制
js函数里面的参数传递为值传递(js函数会将参数拷贝一份来使用),下面为两种示例,一种为基本数据类型,一种为对象
基本数据类型

输出结果为10;该代码等价于下图代码

复合对象类型(1)

输出结果为[1,2,3,4],由于对象在赋值之后指向的是同一个地址,所以改变函数里面的对象也就改变了外面的对象
等价于下图

复合对象类型(2)

输出结果为[1,2,3],由于对象在new的时候会新建一个内存并指向它,所以函数里面改变的对象并不能影响外面的对象
等价于下图

js函数里面的参数传递为值传递(js函数会将参数拷贝一份来使用),下面为两种示例,一种为基本数据类型,一种为对象
基本数据类型

输出结果为10;该代码等价于下图代码

复合对象类型(1)

输出结果为[1,2,3,4],由于对象在赋值之后指向的是同一个地址,所以改变函数里面的对象也就改变了外面的对象
等价于下图

复合对象类型(2)

输出结果为[1,2,3],由于对象在new的时候会新建一个内存并指向它,所以函数里面改变的对象并不能影响外面的对象
等价于下图
