У меня есть очень простой код (http://plnkr.co/edit/voHWdFfwu7TUreyjsRiU?p=preview):JS прототип ─ почему 'undefined'?
function Fnc(){}
Fnc.prototype.fooz = function(){
var i=0;
Fnc.prototype.fooz = function(){
++i;
console.log('i: ', i);
return i;
};
Fnc.prototype.fooz();
};
window.onload=function(){
var fa = new Fnc();
alert(fa.fooz()); // undefined!
alert(fa.fooz()); // 2
alert(fa.fooz() + fa.fooz()); // 7
};
Он выводит в консоль, как и ожидалось, 1,2,7. Но что такое неожиданно, что первое предупреждение выводит «undefined». Почему?
UPD Специально для т.е. GURU. Если вы установите минус, PLZ, объясните, почему. Спасибо.
UPD 2. Я просто не ставил возвращение в первом Fnc.prototype.fooz (в то время как его redifining). Да, довольно наивная ошибка.