Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2013, 13:59
Интересующийся
Отправить личное сообщение для celkabelka Посмотреть профиль Найти все сообщения от celkabelka
 
Регистрация: 16.05.2012
Сообщений: 10

Prototype и то, если бы мы написали метод в самой ф-ции?
Всем привет!

Мат. часть читал!

Сейчас занялся прототипами и совсем запутался с функциями конструкторами и прототипами. Все пытаюсь приблизить это к обычному ооп, что в остальных языках, но как многие говорят, что об ооп тут нужно вообще забыть, что в принципе я постепенно начинаю уяснять.

Вопрос возможно глупый, но объясните как правильно использовать прототипы.

То что ими удобно расширять стандартные объект 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())


Чтобы было чуть ясней разобрать ту муть, что я пытаюсь объяснить, вопрос по другому:

Метод, что указан в самой функции и тот что сделал через прототип - ЭКВИВАЛЕНТЫ (равны)?

Если да, тогда как правильно использовать прототипы? Почему сразу не объявить все нужные методы в самом конструкторе?

Последний раз редактировалось celkabelka, 08.04.2013 в 14:09.
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2013, 14:24
Аспирант
Отправить личное сообщение для vashurin Посмотреть профиль Найти все сообщения от vashurin
 
Регистрация: 01.04.2008
Сообщений: 52

Вопрос по ООП
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2013, 15:19
Интересующийся
Отправить личное сообщение для celkabelka Посмотреть профиль Найти все сообщения от celkabelka
 
Регистрация: 16.05.2012
Сообщений: 10

Благодарю!

Последний раз редактировалось celkabelka, 08.04.2013 в 15:25.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск