Getter es un método para obtener el valor de un atributo, y Setter es un método para establecer el valor de un atributo. Los métodos getter y setter se pueden definir para cualquier objeto central predefinido o objeto definido por el usuario, agregando nuevas propiedades a los objetos existentes.
Hay dos formas de definir un método Getter o Setter:
1. Defina cuándo la inicialización de los objetos
2. Después de definir el objeto, la definición se agrega a través de los métodos __DefineGetter__ y __defines__ del objeto.
Lo único que debe hacer al definir los métodos Getter y Setter utilizando el proceso de inicialización de objetos es prefijar "Get" en el método Getter y "Establecer" en el método Setter.
Otra cosa a tener en cuenta es que el método Getter no tiene parámetros, y el método Setter debe tener un parámetro, es decir, el nuevo valor del atributo a establecerse.
Por ejemplo:
La copia del código es la siguiente:
O = {
Valor: 9,
Get b () {return this.value;},
set setter (x) {this.value = x;}
}
Después de definir el objeto, agregue un método Getter o Setter al objeto, se utilizan dos métodos especiales __DefineGetter__ y __definesetter__. Estas dos funciones requieren que la primera sea el nombre de un Getter o Setter, dado en String, y el segundo parámetro es una función como Getter o Setter.
Por ejemplo, agregamos un atributo de año al objeto Fecha:
La copia del código es la siguiente:
Date.prototype .__ Definegetter __ ('año', function () {return this.getTliplyEar ();});
Date.prototype .__ Definessetter __ ('año', function (y) {this.setfulfyear (y)});
var ahora = nueva fecha;
alerta (ahora.
ahora.OA = 2006;
alerta (ahora);
En cuanto a qué forma adoptar principalmente depende del estilo de programación del individuo, la primera forma es compacta y más fácil de entender. Pero si desea agregar Getter o Setter después de que se define el objeto, o el prototipo de este objeto no está escrito por usted o está integrado, entonces debe usar el segundo método.
Aquí hay una implementación que agrega un atributo de innertext al navegador Mozilla:
La copia del código es la siguiente:
Htmlelement.prototype .__ definegetter__
(
"inntext", function ()
// Definir un método getter para obtener el valor de inntext,
// ¡para que puedas leerlo ahora!
{
var textrange = this.OwnerDocument.CreaterGe ();
// Uso del rango para recuperar el contenido del objeto
textrange.selectNodeContents (esto);
// solo obtenga el contenido del nodo de objeto
return textrange.toString ();
// dar a InnteText el valor del contenido del nodo
}