在“类”的内部可以使用get和set关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。
class A {
constructor () {
this._a = 'a'
}
set a (val) {
if (Object.prototype.toString.call(val) !== '[object String]') {
this._a = 'error'
} else {
this._a = val
}
}
get a () {
return this._a
}
}
let obj = new A()
console.log(obj.a) // a
obj.a = 123
console.log(obj.a) // error