码迷,mamicode.com
首页 > 其他好文 > 详细

函数传值传参

时间:2018-12-29 19:37:10      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:class   soft   size   col   bsp   传参   对象传递   指针   round   

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

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

函数传值传参

标签:class   soft   size   col   bsp   传参   对象传递   指针   round   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!