js对对象引用

Posted 码我滴码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js对对象引用相关的知识,希望对你有一定的参考价值。

var a = [1,2,3];
var b = a;
b.push(4);
console.log(a);//[1,2,3,4]
var a = [1,2,3];
var b = a;
b=[1,2,3,4];//改变了引用地址
console.log(a);//[1,2,3]
// 浅拷贝
var a = {};
var b = {name:"hello"};
function copy(obj){
var newObj = {};
for(var attr in obj){
newObj[attr] = obj[attr];
}
return newObj;

}
a = copy(b);
a.name = ‘hi‘;
console.log(b.name)//hi;
//递归
function all(n){
if(n==1){
console.trace(n);
return 1;
}

return n*all(n-1);
}

console.log(all(4))

//递归深拷贝
var a = {};
var b = {name:{age:"hello"}};
function deepcopy(obj){

if(typeof obj!=‘object‘){
console.trace();
return obj;
}
var newObj = {};
for(var attr in obj){
newObj[attr] = deepcopy(obj[attr]);
}
return newObj;

}
var a = deepcopy(b);
a.name.age = ‘hi‘;
console.log(b.name.age)//hello;











































以上是关于js对对象引用的主要内容,如果未能解决你的问题,请参考以下文章

js 不可变的原始值和可变的对象引用

html在哪里引用js文件?

js对象等号赋值的bug

js知识版图-引用类型赋值、浅拷贝、深拷贝

JS-[引用对象]

JS深拷贝继承