Prototype chain inheritance
<script type="text/javascript"> /* Prototype chain inheritance */ function Animal(name){//parent this.name = name || "未知"; this.say = function(){ console.log(this.name + " says interesting...."); } } Animal.prototype.eat = function(){ console.log(this.name + " can eat..."); } //The temporary constructor omits the following Dog.prototype = new F(); can be replaced with Dog.prototype = Object.create(Animal.prototype); function F(){} function Dog(name){//child Animal.apply(this,arguments); } F.prototype = new Animal() Dog.prototype = new F(); Dog.prototype.run = function(){ console.log(this.name + " run...."); } var dog = new Dog("tom"); dog.say(); dog.eat(); dog.run(); </script>
ES6 inheritance
<script type="text/javascript"> /* ES6 inheritance */ class Parent{ constructor(name){ this.name = name; } say(){ console.log("parent has say method. " + this.name); } } class Child extends Parent{ constructor(name){ super(name); } fly(){ console.log("chid can fly..."); } } var p = new Child("tom"); p.say(); p.fly(); </script>