Показать сообщение отдельно
  #34 (permalink)  
Старый 10.04.2009, 19:37
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

Вот еще пример, в котрый я не могу въехать :
function al(o){document.write(o,'<br>')} 
function Class2(arg1) {
	this._featureAction1=function(){ al(["Class2._featureAction1"])     }  ;
           this._featureAction1() ; // как и ожидалось вызывается метод объекта, на который показывает this, т.е. function(){ al(["Class2._featureAction1"])     }  ;
	//this.constructor.prototype._featureAction1.call(this);  
	this.constructor.prototype._featureAction1();  
};
Class2.prototype._featureAction1=function(){ 
	this._featureAction1();  // переполнение стека .
	//al(["Class2.prototype._featureAction1"])     
};
c=new Class2();

На строке "this._featureAction1(); // переполнение ... " происходит зацикливание(переполнение стека).
Хотя я ожидал , что this сработает так же как и в строке
" this._featureAction1() ; // как и ожидалось ..." , т.е. просто будет вызван как Собственый метод this.функция из тела Конструктора.

Почему же при вызове из тел функций прототипа работает иначе, чем из тела Конструктора ?

Последний раз редактировалось kefi, 10.04.2009 в 19:43.
Ответить с цитированием