Забудьте то, что знаете о функциях. Забудьте, что они получают аргументы и
возвращают ответ. Забудьте, что они хороший способ сократить блок кода до
простого имени. Фактически они являются просто шаблонами, используемыми для
задания свойств в объекте. Здесь ключевое слово - ШАБЛОН. Шаблон может
использоваться для создания новых объектов, а так же для изменения существующих.
С одним и тем же шаблоном можно создавать так много объектов, как это вам
необходимо.
Шаблон нельзя съесть, пощупать или понюхать, это доступно только с объектами,
сделанными с его помощью. Полезно подумать о шаблоне, как об идее, а об объекте,
как о вещи в реальном мире, подобной вашему башмаку... Нельзя есть идею о
ботинке, но можете погрызть свой башмак. Это просветлит ваши мысли, если они
были запутаны до этого.
Это все немного абстрактно, однако повторюсь еще раз - это очень простое
понятие. Например:
Template = function()
{
this.x = 5;
this.y = 7;
}
inst1 = new Template( );
inst2 = new Template( );
inst3 = new Template( );
trace( inst1.x); // 5
trace( inst1.y); // 7
trace( inst2.x); // 5
trace( inst2.y); // 7
Слово, используемое в ООП терминологии для обозначения этих шаблонов - "Класс"
(Class) (здесь следует думать о классификации, а не о классной комнате).
Класс (Class) это шаблон, который используется для создания новых объектов,
называемых "экземплярами" (instances). Объекты и экземпляры суть одно и
то же и могут быть взаимозаменяемыми (и часто!). Упомянутое слово "экземпляр"
обычно предполагает объекты, созданные из класса с использованием оператора
new, в то время как "объект" является более общим термином для всех
объектов.
| Регистр в именах
Имена классов всегда должны начинаться с заглавной буквой, имена
экземпляров - с маленькой. Если вы будете придерживаться этого правила, вам
будет легко и просто обращаться к ним.
Несмотря на то, что класс это просто абстрактная идея в эфире, а
экземпляр настолько реален, что оставляет след, когда шлепается на вас, в
программе они имеют тенденцию выглядеть устрашающе одинаково.
Помните: ClassName - instanceName |
Экземпляры происходят от классов, поэтому переходим к следующему разделу с
экземплярами ...