1. ¿Qué son los métodos get y set?
- get es una forma de obtener un atributo.
- set es una forma de establecer una propiedad.
- get es responsable de consultar, sin ningún parámetro.
- set es responsable de la configuración, que se pasa en forma de parámetros.
2. Cómo usar get y set.
- get y set son métodos, por lo que pueden ser juzgados.
- get generalmente se obtiene y debe devolverse.
- el conjunto se crea y no es necesario devolverlo.
- Cada objeto tiene un método get y set.
- Si se llama a la propiedad dentro del objeto, el formato de nomenclatura es agregar antes del nombre de la variable.
3. Definición de obtener y establecer.
- Definido en el momento de la inicialización del objeto.
- Definido después de que se define el objeto.
//在对象初始化时定义。
var obj={
a: 1,
b: 2,
set c(x){
console.log('c被赋值',x);
c=x;
},
get c(){
console.log('c被取出',c);
return c
}
};
obj.c=7 //c被赋值 7
obj.c //c被取出 7
//对象初始化之后可以这样添加属性
var obj={
a: 1,
b: 2
};
obj.__defineGetter__('c', function(){
return c
});
obj.__defineSetter__('c', function(x){
c = x
});
//或者使用
Object.defineProperty(obj, 'c', {
set:function(x){
console.log('c被赋值',x);
c=x
},
get:function(){
console.log('c被取出',c)
return c
}})
obj.c=3 //c被赋值 3
obj.c //c被取出 3
ejemplo:
var person={
_name:"lisi",
_age:18,
//_name的只读。
get name(){
return this._name;
},
//_age的读写。
set age(Age){
this._age=Age;
},
get age(){
return this._age ;
}
};
console.log(person._name+" "+person._age);//lisi 18
person.name='lily';
person.age=21;
console.log(person.name+" "+person.age);//lisi 21
console.log(person._name+" "+person._age);//lisi 21
//因为_name只读不写,所以name不会发生改变。