function Animal(name) { this.name = name; } Animal.prototype.speak = function() { console.log(this.name + ' makes a noise.'); }; function Dog(name) { Animal.call(this, name); } Dog.prototype = Object.create(Animal.prototype); Dog.prototype.constructor = Dog; Dog.prototype.speak = function() { console.log(this.name + ' barks.'); }; const dog = new Dog('Rex'); dog.speak(); // 输出:Rex barks. class Animal { constructor(name) { this.name = name; } speak() { console.log(this.name + ' makes a noise.'); } } class Dog extends Animal { speak() { console.log(this.name + ' barks.'); } } const dog = new Dog('Rex'); dog.speak(); // 输出:Rex barks. 对比下来,不难发现class类添加方法代码更加易懂,易读,也有好的继承特性,后续更加容易维护;
上一篇:09 ES6的模块化语法