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]
网友评论