Всем привет!
Мат. часть читал!
Сейчас занялся прототипами и совсем запутался с функциями конструкторами и прототипами. Все пытаюсь приблизить это к обычному ооп, что в остальных языках, но как многие говорят, что об ооп тут нужно вообще забыть, что в принципе я постепенно начинаю уяснять.
Вопрос возможно глупый, но объясните как правильно использовать прототипы.
То что ими удобно расширять стандартные объект js и делать что-то типа наследования - это я понял.
Вот пример:
function User(name)
{
var name = name;
/* Что мне мешает сразу объявить нужный функционал тут?
А не в дальнейшем в прототипах? */
this.getName = function()
{
return name;
}
}
User.prototype.getName = function()
{
return this.name;
}
var u1 = new User("Igor");
console.log(u1);
console.log(u1.getName())
Чтобы было чуть ясней разобрать ту муть, что я пытаюсь объяснить, вопрос по другому:
Метод, что указан в самой функции и тот что сделал через прототип - ЭКВИВАЛЕНТЫ (равны)?
Если да, тогда как правильно использовать прототипы? Почему сразу не объявить все нужные методы в самом конструкторе?