Javascript学习笔记——6.6 属性getter和setter

由getter和setter定义的属性称为存取器属性,它不同与数据属性,数据属性只有一个简单的值。

当查询存取器属性的值的时候,调用getter方法;当给存取器属性赋值的时候,调用setter方法。

如果一个存取器属性既有getter方法又有setter方法,称为可读写属性;如果只有getter方法,那就是一个只读属性;如果只有setter方法,那就是只写属性,读取只写属性会返回undefined。

存取器属性的写法

存取器属性定义不使用function关键字,使用set和get。

var o = {
  data_pro:value,
  get accessor_prop(){/*取函数*/},
  set accessor_prop(value){/*存函数*/}
}

比如

var p={  
    name:"Mike",  
    get Name(){  
      console.log('read Name')
      return this.name;  
    },  
    set Name(name){  
      console.log('set Name')
      this.name=name;  
    }  
  }  
p.Name
//read Name
//Mike
p.Name = 'Smith'
//set Name

在getter和setter中引用的this指向当前对象.

存取器属性和数据属性一样可以继承.

你可能感兴趣的:(Javascript学习笔记——6.6 属性getter和setter)