JS-getter和setter

一、getter

1
2
3
{get prop() { ... } }

{get [expression]() { ... } }
1
2
3
4
5
6
7
var obj = {
log: ['example','test'],
get latest() {
return this.log[this.log.length - 1];
}
}
console.log(obj.latest); // "test"


二、setter

1
2
3
{set prop(val) { . . . }}

{set [expression](val) { . . . }}
1
2
3
4
5
6
7
8
var language = {
set current(name) {
this.log.push(name);
},
log: []
}
language.current = 'EN';
console.log(language.log); // ['EN']


三、注意

1、不能将一个 getter或setter 绑定到一个具有真实值的属性上

2、使用delete操作符可以删除getter和setter