JavaScript中函数按值传递的解释

来源:互联网 发布:知已的诗句 编辑:程序博客网 时间:2024/06/05 02:04
function setName(obj){obj.name = "zhaosan";}var obj = new Object();setName(obj);alert(obj.name);

function setName(obj){obj.name = "zhaosan";obj = new Object();obj.name = "lisi"}var obj = new Object();setName(obj);alert(obj.name);

第一个例子中输出:zhaosan

第二个例子还是:zhaosan

解释:

在JavaScript中所有函数都是按值传递的,可以把函数中的参数想象成局部变量。

因为是按值传递,在第二个例子中setName()函数把参数传递进来是按值传递的,在函数内部把参数obj的值又指向另一个变量,由于仅仅是对象obj指向对象引用的值,所以改变函数内部变量obj的值不会影响对象obj的值。


图示: