J'ai essayé le code suivant dans la console de chrome ceci montre la longueur de 4 comme prévu.
Maintenant, j'ai essayé de définir la propriété de longueur aussi écritable: FALSE P> Object.defineProperty(a, "length", {writable: false});
a[4] = 5;
a.length
3 Réponses :
objet.defineproperty (a, "longueur", {Enrichie: false}); code> n'affecte que la manière que vous attribuez la valeur directement à la propriété code> code>. < Pré> xxx pré> p>
Le Par exemple: p> L'écriture écrite code> ne limite que l'utilisation d'opérateurs d'affectation L'écriture écrite code> est déjà false code> strong>. x = [1,2,3,4]; # x.length is 4
y = x.length; # y is 4
x = [1,2,3,4,5] # x.length is now 5, but y is still 4
Je suppose que vous voulez dire que la valeur par défaut de "Entrescriptions" est false pour la propriété de longueur d'un tableau. La longueur de votre exemple est également 4 et reste 4 non 5.
Cela dépend aussi de ce que réellement la longueur code> retourne la propriété. Voir l'exemple suivant var MyObject = function(){
var _count = 0;
this.increment = function(){
_count++;
}
this.getCount = function(){
return _count;
}
};
var object = new MyObject();
Object.defineProperty(object, "count", { // new property `count` calls `getCount`
writeable:false,
get: function(){
return this.getCount();
}
});
alert(object.count); // 0
object.count = 90;
object.increment();
alert(object.count); // 1
object.count = 100;
object.increment();
alert(object.count); //2