КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Конструктором становится любая функция, вызванная черезnew.Например:
Любую функцию можно вызвать при помощи new. При этом она работает несколько иным образом, чем обычно:
Так что результат выполнения примера выше — это объект:
О создаваемом объекте говорят, что это «объект класса(или типа) Animal». Термин «класс» здесь является профессиональным жаргоном. Во многих других языках программирования есть специальная сущность «класс». В JavaScript её нет, но кое-что похожее организовать можно, поэтому так и называют. Функция может возвратить другой объект вместо this Если функция явно возвращает объект, то будет возвращён он, а не this. Например:
Если функция возвращает не объект, к примеру, число, то такой вызов return ни на что не повлияет. Например:
Эта особенность работы new прописана в стандарте, знать о ней полезно, но используется она весьма редко. Названия функций, которые предназначены создавать объекты, как правило, начинают с большой буквы. Кстати, при вызове new без аргументов скобки можно не ставить:
Возможны ли такие функции A и B в примере ниже, что соответствующие объекты a,b равны (см. код ниже)?
Создание методов в конструкторе Использование функций для создания объекта дает большую гибкость. Можно передавать функции свойства создаваемого объекта и параметры, определяющие как его создавать. Например, функция User(name) создает объект с заданным значением свойства name и методомsayHi:
Пример использования:
|