由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指向当前对象.
存取器属性和数据属性一样可以继承.