w3schools setters property getters and javascript internet-explorer setter getter incompatibility

javascript - setters - prototype js w3schools



Javascript getters/setters en IE? (4)

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; } }

Lo cual dará como resultado:

var checkFoo = foo("cool!"); alert(checkFoo.getBar()); //cool! checkFoo.setBar("nice!"); alert(checkFoo.getBar()); //nice!

Por alguna razón, los getters / setters de JavaScript para objetos personalizados parecen funcionar con cualquier navegador excepto IE.

¿Tiene el IE otro mecanismo no estándar para esto? (Como con muchas otras características)

Si no, ¿hay alguna solución para lograr la misma funcionalidad?




IE8 lo tiene a través de defineProperty , pero solo para objetos DOM. Pero supuestamente, eventualmente también vendrá para objetos de JavaScript.