1. get 및 set 메서드란 무엇입니까?
- get은 속성을 가져오는 방법입니다.
- set은 속성을 설정하는 방법입니다.
- get은 매개변수 없이 쿼리를 담당합니다.
- set은 매개변수 형태로 전달되는 설정을 담당합니다.
2. get, set 사용법.
- get 및 set은 메서드이므로 판단할 수 있습니다.
- get은 일반적으로 획득되며 반환되어야 합니다.
- 세트가 생성되었으며 반환할 필요가 없습니다.
- 모든 개체에는 get 및 set 메서드가 있습니다.
- 개체 내부의 속성을 호출하면 명명 형식은 변수 이름 앞에 추가됩니다.
3. get 및 set의 정의.
- 개체 초기화 시간에 정의됩니다.
- 개체가 정의된 후에 정의됩니다.
//在对象初始化时定义。
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
예:
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不会发生改变。