Показать сообщение отдельно
  #2 (permalink)  
Старый 03.01.2014, 12:44
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

В общих чертах: так в js не делают. Для экземпляра zot, this.constructor.superclass === bar.prototype. И, соотвественно, this.constructor.superclass.identify в bar.prototype.identify ссылается сам на себя. Делают так:
function foo() {}
foo.prototype.identify = function() {
    return "I'm a foo";
}
 
function bar() {}
extend(bar, foo)
bar.prototype.identify = function() {
    return "I'm a bar and " +
    foo.prototype.identify.apply(this, arguments);
}
 
function zot() {}
extend(zot, bar)
zot.prototype.identify = function() {
    return "I'm a zot and " +
    bar.prototype.identify.apply(this, arguments);
}
Ответить с цитированием