Найти в Дзене

Создание объектов в JavaScript

В JavaScript существует несколько способов создания объктов. В данной статье рассмотрим основные. Литерал объекта Наверное, это самый простой способ создания объекта. Литерал объекта - список, заключенный в фигурные скобки. Как мы знаем в JS любой тип если он не простой (строка, число, булево) является объектом. И создание объекта по средствам заключения свойств в фигурные скобки привычное дело. Какой бы простой не казалась система, ее можно разбить на более мелкие части. При создании объекта при помощи литерала ссылка на объект записывается в переменную Home. Для того, чтобы получить значение скойства material, используем конструкцию Home.material При таком подходе возможно изменять значения и состав свойств в любой момент. Изменяются значения свойств точно так же, как и у обычных пременных, например, Home.material = "Доска". Объект с методом Метод добавить в объект так же легко, как и обычное свойство. Приведём пример Обратите внимание, что show - это не стандартный метод. Мы сам
Оглавление
Создание объектов в JavaScript
Создание объектов в JavaScript

В JavaScript существует несколько способов создания объктов. В данной статье рассмотрим основные.

Литерал объекта

Наверное, это самый простой способ создания объекта.

Литерал объекта - список, заключенный в фигурные скобки.

Пример создания объекта при помощи литерала.
Пример создания объекта при помощи литерала.

Как мы знаем в JS любой тип если он не простой (строка, число, булево) является объектом. И создание объекта по средствам заключения свойств в фигурные скобки привычное дело.

Какой бы простой не казалась система, ее можно разбить на более мелкие части. При создании объекта при помощи литерала ссылка на объект записывается в переменную Home. Для того, чтобы получить значение скойства material, используем конструкцию Home.material

При таком подходе возможно изменять значения и состав свойств в любой момент. Изменяются значения свойств точно так же, как и у обычных пременных, например, Home.material = "Доска".

Объект с методом

Метод добавить в объект так же легко, как и обычное свойство.

Приведём пример

Обратите внимание, что show - это не стандартный метод. Мы самостоятельно его описали. В дополнение, так как мы находимся в контексте объекта, то можем использовать указатель this для получения значений свойств данного объекта.

Присваивание объектов

Начинаем ломать свое понимание в мире программирования JS. На самом дела в переменной не хранится объект, в переменной хранится ссылка на объект. И при опериции присваивания в новую переменную записывается не сам объект, а ссылка на него.

Продолжим работу с нашим объектом Home. По какой-то причине мы решили, что по свойе структуре объект Home нас полностью устраивает, но значения нужно поменять. По своему не знанию ООП или бональной неопытности просто берем и копируем объект Home в объект Home2 в надежде в последующем изменить значения в объекте Home2.

Пробуем

В конечном счете, при таком подходе, оказывается, что новый объект не создается.

Добавление свойств и методов в объект

Не обязательно продумывать создаваемый объект "от до до". Можно добавлять свойства и методы в объект по мере необходимости. Поработаем с нашим объектом Home с самого начала. На этот раз начнем с пустого литерала, и будем добавлять свойства и методы в уже существующий объект.

Добавление свойств и методов в существующий объект
Добавление свойств и методов в существующий объект

Создание объектов при помощи конструктора

При помощи литералов можно создавать объекты в неограниченном количестве. Но если объектов много, а их свойства и методы одинаковы, то каждый раз создавать литерал неразумно.

Для этого в языке JavaScript существует функция-конструктор, которая на основе ранее описанного шаблона создает объект. Такая функция-конструктор указывается после оператора new.

Действие оператора new состоят в том, что в эту функцию-конструктор автоматически передается ссылка this на созданный объект.

Немного практики. Для начала реализуем функцию-конструктор объектов:

Реализация функции-конструктора
Реализация функции-конструктора

Наша функция-конструктор будет принимать на себя 2 параметра material и numberOfFloors. Внутри функции мы находимся в ее контексте, поэтому можем использовать указатель this, создавая свойства и методы, а так же обращаясь к ним.

Теперь воспользуемся оператором new для того, чтобы создать объект.

Используя функцию-конструктор и оператор new мы получили тот результат, котрый ожидали при использовании присваивания объектов. Только теперь в каждой переменной хранится своя уникальная ссылка на объект.

Создание пустого объекта

Пустой объект можно создать с помощью конструкции new Object(). Выполнение конструкции приводит к созданию нового пустого объекта, а результатом инструкции возвращается ссылка на созданный объект.

#Javascript #WSR #демонстрационный экзамен WSR #веб-дизайн #объекты js