How to implement parasitic Combinatorial inheritance by js
Editor to share with you how js to achieve parasitic combination inheritance, I believe that most people do not know much about it, so share this article for your reference, I hope you can learn a lot after reading this article, let's go to understand it!
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);}; parasitic combination inheritance
Core: cut off the instance properties of the parent class through parasitism, so that when the construction of the parent class is called twice, the instance methods / properties will not be initialized twice, avoiding the disadvantage of combined inheritance
Function Cat (name) {Animal.call (this); this.name = name | | 'Tom';} (function () {/ / create a class with no instance method var Super = function () {}; Super.prototype = Animal.prototype; / / prototype Cat.prototype = new Super ();}) () (); / / Test Codevar cat = new Cat (); console.log (cat.name); console.log (cat.sleep ()) Console.log (cat instanceof Animal); / / trueconsole.log (cat instanceof Cat); / / trueCat.prototype.constructor = Cat; / / the constructor needs to be repaired
Features:
It's perfect.
Disadvantages:
The implementation is more complex.
The above is all the contents of the article "how to achieve parasitic combinatorial inheritance in js". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!