JS对象指向问题

93 阅读1分钟

n个引用对象指向同一个对象,通过一个变量修改其对象内部数据,其它所有变量看到的也为修改后的数据

这也称为浅拷贝

let obj2=obj1
obj2.age=56
console.log(obj1,obj2); //{ name: '多少', age: 56 } { name: '多少', age: 56 }

2个引用变量指向同一个对象,让a变量指向另一个对象,b变量依然指向前一个对象

let b=a
a={name:'qqq',age:56}
console.log(a,b);//{ name: 'qqq', age: 56 } { name: 'ert' },当a指向{name:'qqq',age:56}这个新对象时,a就与{name:'ert'}断开链接

//难度测试
function fn2(obj) {
  console.log('obj前',obj);//{ name: 'qqq', age: 56 }
  obj={age:15} 
  console.log('obj后',obj);//{ age: 15 }
  console.log(a);//{ name: 'qqq', age: 56 }
}
fn2(a)
console.log(a.age); //56