美文网首页
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