美文网首页
JS 中的值传递和引用传递

JS 中的值传递和引用传递

作者: R_X | 来源:发表于2018-06-19 16:10 被阅读0次

    1、值传递(值拷贝的传递)

    number,string,boolean,null,undefined,Date,function

    # number
    var a = 1;
    var b = a;
    b = 2;
    console.log(a)  //  a不变,仍为1--->这就是所谓的值拷贝传递
    console.log(b)  // 2
    
    # string
    var a = '1';
    var b = a;
    b = '2';
    console.log(a)  //  a不变,仍为'1'--->这就是所谓的值拷贝传递
    console.log(b)  // '2'
    
    # boolean
    var a = true;
    var b = a;
    b = false;
    console.log(a)  //  a不变,仍为true--->这就是所谓的值拷贝传递
    console.log(b)  // false
    
    # null
    var a = null;
    var b = a;
    b = 2;
    console.log(a)  //  a不变,仍为:null--->这就是所谓的值拷贝传递
    console.log(b)  // 2
    
    # undefined
    var a = undefined;
    var b = a;
    b = 2;
    console.log(a)  //  a不变,仍为 undefined--->这就是所谓的值拷贝传递
    console.log(b)  // 2
    
    # Date
    var a = new Date();
    var b = a;
    b = new Date();
    console.log(a)  //  Tue Jun 19 2018 16:12:13 GMT+0800 (中国标准时间)
    console.log(b)  // Tue Jun 19 2018 16:12:18 GMT+0800 (中国标准时间)
    
    # function
    var a = function() {console.log(1)};
    var b = a;
    b = function() {console.log(2)};
    console.log(a)  //  function() {console.log(1)};
    console.log(b)  //  function() {console.log(2)};
    

    2、引用传递(指针值的拷贝)

    Object,Array

    # Object
    var a = { name: 'Diana' }
    var b = a;
    b.name = 'July'
    console.log(a.name) // July
    console.log(b.name) // July
     
    # Array
    var a = [0,1,2,3,4,5,6]
    var b = a;
    b[1] = 11;
    console.log(a) // [0,11,2,3,4,5,6]
    console.log(b) // [0,11,2,3,4,5,6]
    

    相关文章

      网友评论

          本文标题:JS 中的值传递和引用传递

          本文链接:https://www.haomeiwen.com/subject/fuoaeftx.html