js 传递参数

ECMASscript中所有的参数都是按值传递的。也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。基本类型值得传递如同基本类型变量的复制一样,二引用类型值得传递,则如同引用类型变量的复制一样。

function setName(obj){

  obj.name="Nicholas";

  obj = new Object();

  obj.name = "Greg";

}

var person = new Object();

setName(person);

alert(person.name);  //"Nicholas"

即使函数内部修改了参数的值,但原来的引用仍然保持未变。实际上,当在函数内部重写obj时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数执行完毕后立即被销毁。

原文地址:https://www.cnblogs.com/ftxc/p/8031634.html