首页 > 其他 > 详细

函数传值传参

时间:2018-12-29 19:13:00      阅读:136      评论:0      收藏:0      [点我收藏+]
var obj = {n:1};
(function(obj){
    console.log(obj.n); //1
    obj.n=3;
    var obj = {n:2}; // 传入参数obj 与 这里再次声明, 会形成重复声明
    console.log(obj.n) //2
})(obj);
console.log(obj.n); //3

var obj1 = {n:1};
function fn(obj1){
    console.log(obj1.n); //1
    obj1.n=3;
    obj1 = {n:2};
    console.log(obj1.n) //2
}
fn(obj1);
console.log(obj1.n); //3

var x = 1;
function a(x{
    // 形参有自己的作用域, 独立于函数外的作用域, 因此不会影响外面的x
    console.log(x);  // 1
    x = 2;
    console.log(x); // 2
}
a(x);
console.log(x); // 1

var obj2 = {n:1};
function b(obj2{
    // js传值; 对象传递的是指针(复制一份指针)
    console.log(obj2.n); // 1
    obj2.n = 2// 引用类型改变相互影响
    obj2 = {n:3}; // 将函数内部变量obj指针从{n:1}变为{n:2}; 外部obj的指针不变, 还是{n:1}
    console.log(obj2.n); // 3
}
b(obj2);
console.log(obj2.n); // 2

// 函数参数的声明相当与函数内部声明

函数传值传参

原文:https://www.cnblogs.com/rencoo/p/10197555.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!