您的位置:首页 > 运维架构 > Linux

centos 6.2升级6.5遇到的问题及解决方法

2014-03-03 10:20 423 查看
ECMAScript中所有函数的参数都是按值传递的。
因为访问变量有按值和按引用两种方式,而参数只能按值传递,这可能会让我们感到困惑。
在向参数传递基本类型的的值时,被传递的值会被复制给一个局部变量(即命名参数)。在向参数传递引用类型的值时,会把这个值在内存中的地址复制给一个局部变量,因此,这个局部变量的变化会反映在函数的外部。为了证明对象是按值传递的,我们看下面的一个例子:
fuction setName(obj){
obj.name="Nicholas";
obj=new Object();
obj.name="gred";

}
var person=new Object();
setName(person);
alert(person.name); //Nicholas
在把person传递给setName()后,其name属性被设置成为“Nicholas”。然后又将一个新的对象赋给变量obj,同时将其name属性设置为“gred”。如果对象是按照引用传递的话,那么person就会自动的被修改为指向其name属性为“gred”的新对象。但是,当接下来再访问person时,显示的值仍然是“Nicholas”。这就说明了即使在函数内部修改了参数的值,但原始的引用仍然不变。实际上,当在函数内部重写obj时,这个变量的引用就是一个局部对象了,而这个局部对象会在函数执行完毕时立即销毁。
可以把ECMAScript函数的参数想象成为局部变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: