看下面一段代码
function setName(obj){
obj.name='Nicholas';
obj=new Object();
obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name);
输出的结果是“Nicholas”而非“Greg”,在函数内部修改参数的值,原始的引用仍然保持未变,当在函数内部重写obj时,这个变量的引用是局部的,当该函数执行完后这个局部变量也就被销毁了。——摘自javascript高级编程第三版
有人可能没听过ECMAScript这个东西,参考解释,顺带也解释了下javascript和jsscript。