Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class A {
doSomething: function(){}
}
class B extends A {
doSomething: function() {
parent.doSomething();
// допустим приводим к новому формату, похоже на реализацию паттерна Proxy внутри метода
}
}
function Bar(){
this.method = function(){...}
}
var bar = new Bar();
function Foo(){
this.method = function(){
bar.method.bind(this); // Вызываем метод родителя в своем контексте
bar.method.bind(bar); // Вызываем метод родителя в контексте родителя
...
}
}
Foo.prototype = bar;
var foo = new Foo();
this.ancestor('method', 3)() // не ясно метод какого объекта вызовется.
bar.method.bind(this) // этой сроки достаточно, чтобы понять где искать дальше
var modal = {
hide: function(){};
}
function Text(){
this.hide = function(){
modal.hide.bind(this);
....
}
}
Text.prototype = modal;
vat text = new Text();
function Warning(){
this.hide = function(){
text.hide.bind(this);
....
}
}
Warning.prototype = text;
warning = new Warning();
Child.prototype.method = function(){
Parent.prototype.method.apply(this, arguments);
};
Как выполнять методы предков в реализации прототипного наследования