Вот еще пример, в котрый я не могу въехать :
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.функция из тела Конструктора.
Почему же при вызове из тел функций прототипа работает иначе, чем из тела Конструктора ?