Показать сообщение отдельно
  #30 (permalink)  
Старый 01.04.2009, 10:07
...
Отправить личное сообщение для Zeroglif Посмотреть профиль Найти все сообщения от Zeroglif
 
Регистрация: 09.03.2008
Сообщений: 216

Даже не знаю, как объяснять. Ну, вот вы видите внутри конструктора некую функцию:

this.x = function(){...};

Представьте, что вместо функции там объект:

this.x = {};

Создавая "экземпляры", вы создаёте разные объекты 'this.x' иначе у каждого экземпляра был бы один и тот же. Та же самая история с функциями, которые те же объекты, только сложнее. У них разница усиливается необходимостью удерживать scope chain, которая (цепь) теоретически всегда разная, т.к. создаётся в момент вызова и "привязывается" к создаваемой функции в момент создания. К тому же у каждой функции при создании есть пара - прототип будущих экземпляров, это тоже уникальная черта каждого потенциального конструктора.
Ответить с цитированием