Показать сообщение отдельно
  #1 (permalink)  
Старый 03.01.2014, 12:27
Аватар для rekzi
Аспирант
Отправить личное сообщение для rekzi Посмотреть профиль Найти все сообщения от rekzi
 
Регистрация: 28.08.2013
Сообщений: 78

Бесконечной рекурсия
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 " +
	this.constructor.superclass.identify.apply(this, arguments);
}

function zot() {}
extend(zot, bar)
zot.prototype.identify = function() {
	return "I'm a zot and " +
	this.constructor.superclass.identify.apply(this, arguments);
}

f = new foo();

alert(f.identify()); // "I'm a foo"

b = new bar();

alert(b.identify()); // "I'm a bar and I'm a foo"

z = new zot();

alert(z.identify()); // stack overflow
Не могу понять пример, почему обращение происходит к дочернему классу zot из bar? Из-за передаваемого контекста this в apply?
Ответить с цитированием