猿问

js传递引用类型参数

function foo(obj) {
    obj.x=100;
}var obj = new Object();
obj.x=1;
foo(obj);console.log(obj.x); // obj.x被修改为100.//===================================function foo1(obj1){
    obj1 = {x:100};
}var obj1 = {x:1};
foo1(obj1);console.log(obj1.x);  //obj1.x为1

上面两段代码,为何结果不同?求解,谢谢......


拉丁的传说
浏览 758回答 1
1回答

慕斯王

上面那个相当于这样:var obj = new Object(); obj.x=1;var foo_obj = obj; foo_obj.x = 100;下面那个则是这样:var obj = new Object(); obj.x=1;var foo_obj = obj; foo_obj = {x: 1};所有的对象在js中,都是引用类型变量。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答