Как создать объект в JavaScript?
С конструктором
Рассмотрим транспортное средство, у него есть номер, и оно заводится, ускоряется и останавливается.
- Давайте определим функцию с именем Автомобиль.
Здесь мы можем наблюдать, что функция имеет некоторые свойства (ДА! функция является объектом).
Среди них нас интересует свойство prototype. Который указывает на объект, имеющий свойство с именем constructor, и его __proto__ является объектом.
Таким образом, этот прототип действует как определение нашего класса.
Давайте определим поведение для нашего автомобиля.
Здесь мы определили поведение под названием start в нашем прототипе автомобиля. Давайте проверим текущий статус нашего прототипа.
Здесь мы видим, что функция запуска добавлена в наш прототип.
Давайте определим остальные свойства и поведение автомобиля.
Используя ключевое слово new, мы можем вызвать (конструктор) функцию Vehicle для создания объекта.
Мы должны заметить одну вещь: свойство number появилось дважды. Это связано с тем, что одно из свойств number взято из нашего прототипа Vehicle, а другое мы инициализировали в объекте.
Когда мы пытаемся получить доступ к какому-либо свойству объекта в JS, он сначала проверяет текущий объект, если он не найден, а затем проверяет цепочку прототипов объектов. Вот почему мы можем вызвать start .
Теперь у нас есть готовый прототип Автомобиля. Мы можем создать столько объектов, сколько захотим, из этой функции-конструктора.