设置一个内部属性 不能被外部使用
const handel4={
checkProp(property,type){
if(property[0]==='_'){
throw new Error(`有句mmp 不知当讲不当讲:不允许${type}这个${property}私有属性!!!!!`)
}
},
get(target,property){
this.checkProp(property,"get")
return target[property]
},
set(target,property,value){
this.checkProp(property,"set")
return target[property]=value
}
}
class Car{
constructor(name){
this.name=name
return new Proxy(this,handel4)
}
static sayName(){ // 只能被Car 调用
console.log(this.name)
}
_goRight(){
console.log('ooo')
}
goLeft(){
console.log(this.name)
}
}
let c2 = new Car("lp") // 创建实例
Car.sayName() //调用静态方法 只能被类调用
c2.goLeft() //正常调用
c2._goRight() // 将抛出错误
网友评论