Setters y Getters en JavaScript son métodos que están menos expuestos en los tiempos normales. No son métodos estándar en sí mismos y solo son compatibles con navegadores que no son II (¿puede haber otros métodos que el núcleo IE puede hacer?
1. Restricciones en el acceso a los datos:
A.Value es una llamada de método Getter a la variable de valor. Si se lanza una excepción en la implementación del método Getter, se puede bloquear el acceso a la variable de valor.
2. Escuche las variables DOM:
Window.Name es un atributo DOM muy útil en todos los dominios (conocido por sus detalles, consulte Baidu para más detalles). Si anula la implementación de Setter de Window.name, puede realizar la comunicación de memoria asíncrona en las páginas.
3. Usa tu imaginación y puede hacer muchas cosas
Todos los siguientes se transfieren:
Primero, echemos un vistazo rápido a lo que son Getters y Setters y por qué son útiles. Luego, veamos qué plataformas ahora admiten GetTets y Setters.
Getters and Setters
Getters y Setters le permiten obtener o configurar rápidamente los datos de un objeto. En términos generales, un objeto tiene dos métodos que se utilizan para obtener y establecer un cierto valor, como:
{getValue: function () {return this._value;}, setValue: function (val) {this._value = val;}}Un beneficio obvio de escribir JavaScript de esta manera es que puede usarlo para ocultar atributos a los que no desea que el mundo exterior acceda directamente. El código final se ve así (guarde el valor del objeto archivado recién creado con un cierre):
campo de función (val) {var value = val; this.getValue = function () {value de retorno;}; this.setValue = function (val) {valor = val;};}Entonces podemos usarlo así:
var campo = nuevo campo ("test"); field.value // => undefinedfield.setValue ("test2") field.getValue () // => "test2"Simulemos el "atributo de valor oculto" en el ejemplo anterior, y nuestro código se ve así:
campo de función (val) {var value = val; this .__ definegetter __ ("valor", function () {value de retorno;}); this .__ defineSetter __ ("valor", function (val) {value = val;});}Sin embargo, no le gusta escribir de esta manera, y tiende a definir a Getters y Setters en el prototipo del objeto (no importa dónde se escriba la variable privada), podemos usar otra sintaxis.
campo de función (val) {this.value = val;} campo.prototype = {get value () {return this._value;}, set value (val) {this._value = val;}};Esta sintaxis se ve increíble, pero después de usarla por un tiempo, es fácil aceptarla.
El siguiente es otro ejemplo, que permite que el mundo exterior obtenga una variedad de nombres de usuario, pero no puede obtener los objetos de usuario ocultos originales.
Sitio de funciones (usuarios) {this .__ Definegetter __ ("ussers", function () {// js 1.6 mapray map () return users.map (function (user) {return user.name;});};}Recuerda los siguientes puntos:
Dentro de un objeto, cada variable solo puede tener un Getter o Setter. (Por lo tanto, el valor puede tener un getter y un setter, pero el valor nunca tiene dos getters)
La única forma de eliminar un Getter o Setter es: Eliminar objeto [nombre]. Eliminar puede eliminar algunas propiedades, getters y setters comunes.
Si usa __definegetter__ o __definesetter__, anula el recibo o el setter del mismo nombre definido anteriormente, o incluso una propiedad (propiedad).
plataforma
Los navegadores compatibles son:
Firefox
Safari 3+
Ópera 9.5
Lo anterior es la descripción completa de los métodos Setter y Getter introducidos en JavaScript que el editor le ha presentado. Espero que te sea útil. Si desea saber más, preste atención a Wulin.com.