Introduction à l'héritage
L'héritage en JS est un sujet très complexe, bien plus complexe que l'héritage dans tout autre langage orienté objet. Dans la plupart des autres langages orientés objet, hériter d’une classe ne nécessite qu’un seul mot-clé. Afin d’atteindre l’objectif d’hériter des membres publics de JS, une série de mesures doivent être prises. JS appartient à l'héritage prototypique. Grâce à cette flexibilité, nous pouvons utiliser soit un héritage prototypique basé sur les classes, soit un héritage prototypique plus subtil. Il devrait être clair dans JS que tout héritage se fait via un prototype et que JS hérite en fonction des objets.
Hérité :
function Animal(name){ this.name = name; this.showName = function(){ alert(this.name); } } function Cat(name){ Animal.call(this, name); } var cat = new Cat("Black Cat"); cat.showName();
Animal.call(this) signifie Si vous utilisez l'objet Animal à la place de cet objet, alors Cat a toutes les propriétés et méthodes d'Animal. L'objet Cat peut appeler directement les méthodes et propriétés d'Animal.
Héritage multiple : <🎜. >
function Class10() { this.showSub = function(a,b) { alert(a-b); } } function Class11() { this.showAdd = function(a,b) { alert(a+b); } } function Class2() { Class10.call(this); Class11.call(this); }
Laissez-moi vous présenter comment implémenter l'héritage simple en JavaScript ?
function Employee(name, sex, employeeID) { this.name = name; this.sex = sex; this.employeeID = employeeID; } // 将Employee的原型指向Person的一个实例 // 因为Person的实例可以调用Person原型中的方法, 所以Employee的实例也可以调用Person原型中的所有属性。 Employee.prototype = new Person(); Employee.prototype.getEmployeeID = function() { return this.employeeID; }; var zhang = new Employee("ZhangSan", "man", ""); console.log(zhang.getName()); // "ZhangSan