Показать сообщение отдельно
  #13 (permalink)  
Старый 07.07.2012, 14:38
Аватар для Drimogemon
Профессор
Отправить личное сообщение для Drimogemon Посмотреть профиль Найти все сообщения от Drimogemon
 
Регистрация: 02.07.2012
Сообщений: 106

Сообщение от almac
2. Зачем задавать конструктор для прототипа при ПЕРЕзаписи прототипа?
Пример:
Потому что присоздании каждой функции в её свойстве prototype автоматически создается прототип пустышка, предполагая что эту функцию будут использовать как конструктор.
Он выглядит так
function Cat(){};
Cat.prototype = {constructor:Cat}

ну так сделано чтобы в созданных обьектах была ссылка на конструктор который их создал, и если мы перезаписываем этот прототип ЦЕЛИКОМ (а не просто добавлем в него что-то) то нужно и замутить вот это свойство constructor вручную.

Только один ньюанс, когда оно создавалось автоматчиески оно было скрытым и немеречисляемым при for in ? а когда мы его создаем вручную , то создается обычное перечисляемое свойство, и это геморно слегка.
Ответить с цитированием