2017-08-01 54 views
0
const a = { 
    age: 12, 
    name: 'Lucy' 
}; 

console.log(a, a.age); 

delete(a.age); 

任何人都可以向我解释什么发生在console.log它在Chrome开发工具和结果显示像这样的age属性?为什么Chrome devtool以不同方式显示对象属性和对象本身?

Object {age: 12, name: "Lucy"} 12 
    name:"lucy" 
    __proto__:Object 

如果我定义另一个对象,并且它是console.log它。

const b = { 
    age: 12, 
    name: 'lucy' 
}; 

console.log(b); 

控制台打印它拥有的所有财产?

Object {age: 12, name: "lucy"} 
    age:12 
    name:"lucy" 
    __proto__:Object 
+0

它的功能与您在调用['delete(...)'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)时所做的一样,像_delete_它。但是你的问题主体与标题不同。它应该相互对应。所以我不确定你想问什么。你想知道'delete()'是如何工作的,或者为什么'b'还有'age'属性? – KarelG

回答

0

那是因为你console.log删除其属性之前该对象。

Object {age: 12, name: "Lucy"}只是一个由Chrome devtool完成的快速对象快照。它不会改变你之后做的任何事情。

当您展开显示对象属性时,devtool链接到对象引用并显示当前值。

+0

对,我明白了,所以它是铬快照和对象引用。 Thx队友 – fortrustit

相关问题