首页 > javascript函数传参是传值还是传引用?

javascript函数传参是传值还是传引用?

function changeStuff(num, obj1, obj2)
{
    num = num * 10;
    obj1.item = "changed";
    obj2 = {item: "changed"};
}

var num = 10;
var obj1 = {item: "unchanged"};
var obj2 = {item: "unchanged"};
changeStuff(num, obj1, obj2);
console.log(num);   // 10
console.log(obj1.item);    // changed
console.log(obj2.item);    // unchanged

为什么是这个情况?


js所有的传递都是值传递


无耻的贴一篇自己的文章,是根据《js高程》自己总结的,看2.传递参数


JavaScript中所有参数的传递均是值传递


旧答案错了。刚看了下js高程,里面说的很清楚是传值得额。。


js高程上面有详细讲,js函数都是按值传递参数的。


js中的所有参数传递都是传值,但是这个传值你要理解的一点是:基本数据类型的传值是指的复制值,引用类型传值指的是地址传递,为什么会传递地址呢?因为保存在栈中的变量保存的是地址,所以它传递的肯定是地址。


基本类型是传值,引用类型是传址


终于搞明白了,是call by shareing.就是分享,共享,共享值,共享地址,一切都豁然开朗了

【热门文章】
【热门文章】