关于引用的理解
引用类型 是对 复杂数据类型而言的
有了好的想法再来添加
下面看 代码一
var arr = [1,2,3];
function f1(a){
a = [11,22,33];
}
console.log(arr); //[1,2,3]
f1(arr);
console.log(arr); //[1,2,3]
这里为什么没有变化呢?
function f1() { a = [11,22,33]} 是把 arr = [1,2,3];的引用的地址改变了,所以不会改变原 arr 的内容
代码二
var arr = [1,2,3];
function f2(a){
a[0] = 'a';
}
console.log(arr); //[1,2,3]
f2(arr);
console.log(arr); //["a",2,3]
这里为什么改变了?
function f1 () { a[0] = 'a'} 是是把arr = [1,2,3]的引用复制给了a,然后又在引用的对象里做了修改
现在就好比两个人都有了 一个房间的钥匙 一个人进去 把沙发 挪动了,另一个人进来时 沙发是挪动后的位置 也就是对象内容被改变了
代码三
var num = 1;
function f3(a){
a = 3;
}
console.log(num); // 1
f3(num);
console.log(num); // 1
这里也没有变化!为什么呢?
因为引用类型是 针对复杂的数据类型而言的 比如对象类型的数据
数字是基本类型 不存在什么引用 函数内部变量 由形参拷贝 外部变量 进去 改变赋值 但外部变量并没有改变