ECMAScript中所有的函数的参数都是按值传递的
看下面一段代码
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。