console.log(b);// 1
2.引用类型是放置在堆里面,一般引用类型的数据都比较大,而栈空间又比较小,所有引用类型都是放置在堆里面,而放置在栈空间的是引用类型的地址引用,互相赋值会影响双方
varobj1 = {
name:‘lyj’
};
varobj2 = obj1;
obj1.name =‘cjy’;
console.log(obj2);// {name: ‘cjy’}
3.如果引用类型想赋值却又不想互相影响,可以通过浅克隆方式,如下
1.ES6结构
varobj1 = {name:‘lyj’}
varobj2 = {…obj1}
2.JSON大法
varobj1 = {name:‘lyj’}
varobj2 =JSO 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 N.parse(JSON.stringify(obj1))
3.函数封装clone
function clone(origin, target) {
vartarget = target || {}
for(varpropinorigin) {
target[prop] = origin[prop]
}
returntarget
}
varobj1 = {name:‘lyj’,sex:‘boy’}