美文网首页
ES6 里关于class的setter和getter

ES6 里关于class的setter和getter

作者: infi_ | 来源:发表于2020-03-19 02:35 被阅读0次

废话不多说 直接上例子

let _age=4
class Animal{
    constructor(type){
        this.type=type
    }
    get age(){       //get 是关键字  ES6允许属性在constructor外 在类的顶层  出入口
        return _age
    }
    set age(val){   //setter相当于给属性赋值的拦截器 里面可以判断 只要实例上给age属性赋值就会触发  出入口
        if(val>8){
            _age=val
        }
    }
    eat(){
        console.log("im eat food")
    }
}

let dog=new Animal("dog")  
let monkey=new Animal("monkey")

dog.eat()
monkey.eat()


console.log(typeof Animal)
console.log(dog.age)  //4
dog.age=9  //设置age 触发set方法   
console.log(dog.age)  //调用时候按属性调用  9

相关文章

网友评论

      本文标题:ES6 里关于class的setter和getter

      本文链接:https://www.haomeiwen.com/subject/zizhyhtx.html