在某群看到有人说,对象是按引用传递的。。。因为传进去修改一个东西后外面的东西也被修改了。。。这其实是错误的,,因为外面指向的对象在内存中只有一个,是全局对象。所以修改里面那个,外面那个也会被修改。要想证明是按值传递的,其实很简单。看代码。
function setName(obj){
obj.name="123";
obj=new Object();
obj.name="321";
}
var perSon=new Object();
setName(perSon);
console.log(perSon.name); //"123"
很显然,要是按引用传递的话,
Person.name的值是321,而结果是123,就说明了是按值传递的。即使函数内部修改了参数,但是原始的引用仍然未变,里面修改的东西算是一个局部对象。在函数执行完就会被销毁= =