Open better2021 opened 4 years ago
// class是原型继承的语法糖 class person { constructor(name, sex, age) { this.name = name; this.sex = sex || 'gril'; this.age = age; } /* static 是静态方法,外部实例不能调用,表示该方法不会被实例继承, 而是直接通过类来调用, 这就称为“ 静态方法”*/ static play() { console.log(this.name + '在打网球'); } walk() { console.log(`${this.name}在走路`); play(); } speack() { console.log(`${this.name} 是 ${this.sex}`); } isAdult() { if (this.age > 18) { console.log(`${this.name} 是成年人`); } else { console.log(`${this.name} 是未成年`); } } } let per = new person('小明', 'boy', 25); let li = new person('lili', 'gril', 16); console.log(per.name); per.isAdult(); li.isAdult(); per.speack(); person.play(); // 静态方法直接通过类来调用 // 原型继承 function people(name, sex, age = 18) { this.name = name; this.sex = sex; this.age = age; } // 在原型上添加方法 people.prototype.say = function () { console.log(`${this.name} 是 ${this.sex}`); }; people.prototype.isAdult = function () { if (this.age >= 18) { console.log(`${this.name} 是成年人`); } else { console.log(`${this.name} 是未成年`); } }; let jon = new people('haha', 'boy'); jon.isAdult();
原型继承和class语法糖