JS에서 메서드를 가져오고 설정합니다.

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不会发生改变。
      

おすすめ

転載: blog.csdn.net/weixin_46953330/article/details/114885324