使用大括号解构绑定对象后,如何访问原对象?
如何在解构对象后访问原对象?
我明白你的困惑啦——你用对象解构提取了emri属性,但现在发现没法访问原对象的其他属性,对吧?
先来看你的代码问题出在哪:
var {emri}={emri:"Arjon",mosha:23};
这里右边的{emri:"Arjon",mosha:23}是一个匿名临时对象,你只把它的emri属性提取出来赋值给了变量emri,但这个原对象本身没有被保存到任何变量里。所以现在emri只是字符串"Arjon",自然emri.mosha会返回undefined——字符串哪来的mosha属性呢?
解决方法:先保存原对象再解构
要同时拿到解构后的属性和原对象,最直接的方式就是先把原对象赋值给一个变量,再从这个变量里解构属性:
// 先把原对象存到变量里,比如叫person const person = {emri:"Arjon",mosha:23}; // 从person中解构出emri属性 const {emri} = person; // 现在两种访问都能实现了 console.log(emri); // 输出 "Arjon" console.log(person.mosha); // 输出 23
为什么最初的写法不行?
你最初的代码里,匿名对象在解构完成后就没有任何变量引用它了,JavaScript的垃圾回收机制会很快把它清理掉,所以你根本没办法再找回这个原对象。只有当你把它赋值给一个变量,让它有“名字”之后,才能随时访问它的所有属性。
内容的提问来源于stack exchange,提问作者Arjon Cahani
相关产品推荐
相关产品推荐

