2017-08-01 56 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

相關問題