ES6抽象、封装简单demo

来源:互联网 发布:excel 开发工具 vb 编辑:程序博客网 时间:2024/06/07 02:35
       class Dog{     //抽象Dog类constructor(hairColor,breed, age){this.hairColor =hairColor;this._breed =breed;this.age =age;this.runSpeed =null;Dog.instanceNumber++;}shout(){console.log('汪汪汪,我是有' +this.age + '岁的' + this.hairColor +this.breed);}run(){this.runSpeed ='10m/s';console.log('本狗的速度可是有' +this.runSpeed);}gnawBone(){console.log('拿到骨头了,最幸福的时刻');return this;}getInstanceNumber(){return Dog.instanceNumber;}get breed(){//封装getter方法console.log('调用了get breed接口');return this._breed;}set breed(breed){//封装setter方法,若果没有该setter方法,就没有办法改变_breed属性console.log('调用了set breed接口');this._breed =breed;return this;}}Dog.instanceNumber =0;//抽象类的静态属性let dog1 =new Dog('白色','萨摩', 1);let dog2 =new Dog('灰色','二哈', 2);let dog3 =new Dog('咖啡色','泰迪', 1);dog1.shout();dog2.shout();dog3.shout();console.log(Dog.instanceNumber);dog1.breed ='萨摩变萨摩耶';dog1.shout();console.log:调用了get breed接口汪汪汪,我是有1岁的白色萨摩调用了get breed接口汪汪汪,我是有2岁的灰色二哈调用了get breed接口汪汪汪,我是有1岁的咖啡色泰迪3调用了set breed接口调用了get breed接汪汪汪,我是有1岁的白色萨摩变萨摩耶