La publicación de Resig hace referencia a su implementación de env.js, ya que es la primera vez que utiliza la metodología getters y setters que está buscando. La razón por la que este estilo funciona bien para él es porque no se utilizan en un entorno basado en navegador, env.js se enfoca principalmente en entornos de scripts o JS del lado del servidor como Rhino.
Para manejar la compatibilidad del navegador y enfocarse en un aspecto que JavaScript hace muy bien, use cierres para sus métodos getter y setter para proteger las propiedades del objeto.
Por ejemplo:
foo: function(val) {
var bar = val;
this.setBar: function(newBar) {
bar = newBar;
},
this.getBar: function() {
return bar;
}
}
que se traducirá en:
var checkFoo = foo("cool!");
alert(checkFoo.getBar()); //cool!
checkFoo.setBar("nice!");
alert(checkFoo.getBar()); //nice!
IE9 y IE10 apoyar esto ahora: http: //kangax.github.com/es5-compat-table/ –
Son compatibles con literales de objeto, pero no con prototipos de objeto en IE :(. http://robertnyman.com/javascript/javascript-getters-setters.html # regular-getters-and-setters – roguenet