Объекты в Javascript

Объекты в Javascript

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали что такое замыкания в Javascript. В данной статье я бы хотел поговорить про объекты в Javascript. По сути объект — это коллекция именованных свойств и методов. Объявить объект можно несколькими способами :

С помощью вызова класса-конструктора:

var obj = new Object();
var obj1 = Object();

С помощью объектного литерала:

var obj = {};

С помощью второго способа можно сразу задать свойства и методы у объекта. Давайте создадим объект "room" с заданной длиной и шириной, а также методом, который выводит площадь комнаты:

var room = {
   length : 7,
   width : 5,
   square : function() {
      return this.width * this.length; 
   }
}

Пары "имя свойства/метода : значение свойства/метода" разделяются запятой. После последней пары запятая не ставится (иначе возникнут проблемы в IE). Если не писать ничего внутри фигурных скобок, то будет создан пустой объект.

В отличие от массивов, где каждый элемент имеет индекс – номер, по которому можно его найти в любой момент, в объекте элементы представляют свойства (методы) с именем. При создании свойства (метода) мы должны дать ему имя. В результате созданное свойство (метод) хранится с данным именем.

Обращение к свойствам и методам

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

//Обращение к свойству
room.length;
room['length'];
//Обращение к методу
room.square;
room['square'];

Любой метод объекта можно вызвать с помощью этого же синтаксиса и оператора "()":

room.square();
room['square']();

Создание свойств и методов

Свойства и методы у объекта Javascript создаются таким же образом, каким происходит обращение к ним. Давайте создадим у нашего объекта "room" свойство "windows", а также добавим свойство, которое выводит длину комнаты:

room.windows = 2;
room.showLength = function() {
   alert(this.length);
}

Таким нехитрым образом мы создали новое свойство и метод у объекта "room". Также мы можем методу объекта присвоить ссылку на глобальную функцию. Давайте создадим функцию, которая выводит ширину комнаты, но сделаем её глобальной:

var showW = function() {
   return this.width;
}
room.showWidth = showW;
room.showWidth(); //выведет 5

Последний способ имеет преимущество при создании объектов с одним и тем же методом и позволяет экономить ресурсы – в каждом объекте хранится не код функции целиком, а только лишь ссылка на внешнюю функцию.

Удаление свойств и методов

Для удаления свойств и методов объекта вызывается оператор "delete". Давайте удалим свойство "windows" у объекта "room":

room.windows; //выведет 2
delete room.windows;
room.windows; //выведет undefined

В качестве домашнего задания: создайте у нашего объекта булево свойство "hasFurniture", которое определяет есть в комнате мебель или нет.

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

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *