var book = {};
Object.defineProperties(book, {
_year: {
value: 2004
},
edition: {
value: 1
},
year: {
get: function(){
return this._year;
},
set: function(newValue){
if (newValue > 2004) {
this._year = newValue;
this.edition += newValue - 2004;
}
}
}
});
var descriptor = Object.getOwnPropertyDescriptor(book, "_year");
alert(descriptor.value); //2004
alert(descriptor.configurable); //false
alert(typeof descriptor.get); //"undefined"
var descriptor = Object.getOwnPropertyDescriptor(book, "year");
alert(descriptor.value); //undefined
alert(descriptor.enumerable); //false
alert(typeof descriptor.get); //"function"
以下这两行看不懂
alert(descriptor.configurable); //false
alert(descriptor.enumerable); //false
对象默认的可配置属性和可枚举属性是true吧
示例代码未设置这两个属性,默认的应该为true吧
PS:红宝书6.1.3(24印143页)
C'est correct, mais cela fait référence à ne pas utiliser
defineProperty
或者defineProperties
的时候,使用它们的时候,那两个属性默认为false
.définir les propriétés
Ce manuel API contient des instructions et la valeur par défaut est false.
Le livre de l'enveloppe rouge indique que pour les propriétés définies directement sur l'objet, leur valeur par défaut est vraie, quelque chose comme ceci,
;`
`
J'ai sorti mon livre à enveloppe rouge. Oui, cela signifie des attributs directement définis sur l'objet. La fonctionnalité configurable est par défaut vraie. Non, vous pouvez afficher les valeurs configurables de 'a', 'b',. et 'c'.