Наследование классов в JavaScript не предусмотрено, но его можно эмулировать. Не очень похоже на настоящие классы, но это работает. В первом варианте - используем конструктор родителя как инициализатор в конструкторе наследника, и в ручном режиме запоминаем перекрытые методы (а можно и свойства): // Parent function ParentClass() { this.name = "parent" this.show = ParentClass_show } function ParentClass_show() { alert(this.name) } // Child function ChildClass() { this.parent = ParentClass this.parent() // Перезадаем свойство this.name = "child" // Перекрываем метод show() this.ParentClass_show = ParentClass_show this.show = ChildClass_show } function ChildClass_show() { alert( "Class "+this.name ) this.ParentClass_show(); } var obj = new ChildClass() obj.show() Во втором случае используем для наследования прототипы: function ParentClass() { } ParentClass.prototype.f1 = function() { alert(1) } function ChildClass() { } ChildClass.prototype = new ParentClass() ChildClass.prototype.f2 = function() { alert(2) } var obj = new ChildClass(); obj.f1()
JavaScript Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor