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时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数执行完毕后立即被销毁。

posted @ 2017-12-13 10:32  *﹏漸洐漸薳〆…  阅读(192)  评论(0编辑  收藏  举报