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的时候会新建一个内存并指向它,所以函数里面改变的对象并不能影响外面的对象
等价于下图
转载于:https://www.cnblogs.com/-lrd/p/7203511.html