Показать сообщение отдельно
  #1 (permalink)  
Старый 08.07.2012, 18:31
Интересующийся
Отправить личное сообщение для imissyouso Посмотреть профиль Найти все сообщения от imissyouso
 
Регистрация: 28.06.2011
Сообщений: 15

Что есть конструктор?
Начал изучать javascript. Прочитал много статей по основам ООП, после моего классического понимания ООП в jav'e или php в голове появилась путаница.
Сначала опишу как я понял то что прочитал, а потом задав вопрос. (поправьте если понял не правильно)

объект можно создавать 2умя основными способами: через функцию-конструктор и через языковой литерал (var a = {}).
Функция конструктор позволяет создать объект по шаблону который описан в её реализации оперируя со ссылкой this. this наследует свойства и методы объекта ссылка на который указана в свойстве prototype конструктора.
вот есть такой код:

function Child(){}
function Parent()
{
    this.name = "Vasia"; 
}

var parent = new Parent();
//тут я указываю свойству конструтора prototype ссылку на объект parent
Child.prototype = parent;

var child = new Child();

alert(child.name);

Ну вот понятно что child и parent имеют право иметь свойства и методы (например name), потому что это ОБЪЕКТЫ.
Но как может быть свойство у функции? У конструктора Child?? Это же не объект. На данный момент я понимаю что да, этот код работает. Но по какой такой логике мы НЕ объекту указываем свойство(в данном случае св-во prototype для НЕ объекта Child). Как это работает на более нижнем уровне, на уровне интерпретатора языка? Вот что интересно, столько статей, а про это нет ни слова.

Последний раз редактировалось imissyouso, 08.07.2012 в 18:46.
Ответить с цитированием