La publication de Resig fait référence à sa mise en œuvre d'env.js en utilisant pour la première fois la méthode des getters et setters que vous recherchez. La raison pour laquelle ce style fonctionne bien pour lui est qu'ils ne sont pas utilisés dans un environnement basé sur un navigateur, env.js est principalement axé sur les environnements JS ou de script côté serveur comme Rhino.
Pour gérer la compatibilité avec les navigateurs et vous concentrer sur un aspect que JavaScript réussit très bien, utilisez des fermetures pour vos méthodes getter et setter afin de protéger les propriétés des objets.
Par exemple:
foo: function(val) {
var bar = val;
this.setBar: function(newBar) {
bar = newBar;
},
this.getBar: function() {
return bar;
}
}
qui se traduira par:
var checkFoo = foo("cool!");
alert(checkFoo.getBar()); //cool!
checkFoo.setBar("nice!");
alert(checkFoo.getBar()); //nice!
IE9 et IE10 soutiennent maintenant: http: //kangax.github.com/es5-compat-table/ –
Ils sont pris en charge sur les littéraux d'objet, mais pas sur les prototypes d'objets dans IE :(. http://robertnyman.com/javascript/javascript-getters-setters.html # regular-getters-and-setters – roguenet