1: Wenn die Attribute der Set- und Get-Methoden in der Prototypkette eines Objekts festgelegt sind, schreibt das Objekt automatisch dieses Attribut.
2: Der Code lautet wie folgt
let test = {
a:1,b:2
}
Object.defineProperty(test,'a',{
set(){
return 'set'
},
get(){
return 'get'
}
})
let o = {};
o.__proto__ = test;
3: In der Konsole anzeigen o
4: Warum hat das o-Objekt auch ein Attribut?
眼见不一定为实……
不信你
Object.getOwnPropertyDescriptor(o, 'a')
与Object.getOwnPropertyDescriptor(test, 'a')
分别执行试试。这应该只是chrome的调试工具为了方便显示打造的效果,firefox下就不会出现这种情况。