1 : Si les attributs des méthodes set et get sont définis dans la chaîne de prototypes d'un objet, l'objet écrira automatiquement cet attribut.
2 : Le code est le suivant
let test = {
a:1,b:2
}
Object.defineProperty(test,'a',{
set(){
return 'set'
},
get(){
return 'get'
}
})
let o = {};
o.__proto__ = test;
3 : Afficher dans la console o
4 : Pourquoi l'objet o a-t-il aussi un attribut ?
Voir, ce n'est pas forcément croire...
Si vous ne me croyez pas, essayez de les exécuter séparément.
Cela devrait être juste l'effet créé par l'outil de débogage de Chrome pour faciliter l'affichage. Cette situation ne se produira pas sous Firefox.Object.getOwnPropertyDescriptor(o, 'a')
与Object.getOwnPropertyDescriptor(test, 'a')