How to implement Combinatorial inheritance by js
This article will explain in detail how to achieve combinatorial inheritance in js. The editor thinks it is very practical, so I share it with you as a reference. I hope you can get something after reading this article.
The parent class code is as follows:
/ / define an animal class function Animal (name) {/ / attribute this.name = name | | 'Animal'; / / instance method this.sleep = function () {console.log (this.name +' sleeping!') ;}} / / prototype method Animal.prototype.eat = function (food) {console.log (this.name + 'eating:' + food);}; combinatorial inheritance
Core: inherit the properties of the parent class and retain the advantages of passing parameters by calling the parent class construction, and then realize function reuse by using the parent class instance as the subclass prototype
Function Cat (name) {Animal.call (this); this.name = name | | 'Tom';} Cat.prototype = new Animal (); / / combinatorial inheritance is also pointed to by the repair constructor. Cat.prototype.constructor = Cat;// Test Codevar cat = new Cat (); console.log (cat.name); console.log (cat.sleep ()); console.log (cat instanceof Animal); / / trueconsole.log (cat instanceof Cat); / / true
Features:
It makes up for the defect of mode 2, which can inherit both instance properties / methods and prototype properties / methods.
Is an instance of both a subclass and a parent class
There is no problem of reference attribute sharing
Transferable parameter
Function reusable
Disadvantages:
The parent class constructor is called twice and two instances are generated (the subclass instance masks the one on the subclass prototype)
This is the end of this article on "how to achieve combinatorial inheritance in js". I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, please share it for more people to see.