{lang: ‘ru’}

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

Типы данных в JavaScript: Null, Undefined (неопределенное значение, то есть отсутствие), Boolean (логический), Number (число), String (строка) и Object (объект). Примитивными типами данных являются первые 5, а Object — нет. Так же, условно можно считать, что тип Object имеет «подтипы»: функция (Function), массив (Array), регулярное выражение (RegExp)   и прочие.
Это описание слегка упрощено, но на практике этого хватает.

Стоит отметить, что примитивные типы  Number, String и Boolean некоторым образом связаны с «подтипами» Object: Number, String и Boolean соответственно.
Это значит, что строку ‘Привет, Мир’, например, можно создать как объект с типом String и как примитивное значение.
Это сделано затем, чтобы программист, работая с примитивными значениями, мог использовать свойства и методы объекта.

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

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

var test = {
    simple_property: 'Hello',
    object_property: {
        user_1: 'Вася',
        user_2: 'Миша'
    },
    function_property: function(user) {
        alert(this.simple_property + ', ' + this.object_property[user]);
    }
}

test.function_property('user_1'); //Hello, Вася.

Перед нами объект obj, который имеет 3 свойства: одиночное значение, перечесление и функция. Самый большой интерес представляет свойство function_property, которое содержит функцию. Эту функцию можно назвать методом этого объекта. В этой функции используется ключевое слово this, которое является  ссылкой на объект, из которого вызывается функция. Необходимо четко понимать, что this всегда указывает на объект, из которого функция вызвана, а не на объект, к которому она принадлежит.

test.function_property('user_1'); //Hello, Вася.
test2 = new Object(); //Еще одна форма создания нового объекта, аналогичная test2={}

test.function_property.call(test2, 'user_1'); //ошибка
/* Метод call позволяет вызвать функцию от имени другого объекта. В данном случае, мы вызываем метод function_property объекта test, и его this указывает уже не на объект test, а на объект test2. А т.к. в нем нет свойства object_property, то при попытке получить this.object_property[user]скрипт выдаст ошибку */

//попробуем исправить ситуацию
test2.simple_property = 'Good day';
test2.object_property = test.object_property; //В данном случае воспользуемся указанием объекта по ссылке, чтобы не дублировать код

test.function_property.call(test2, 'user_1'); //Good day, Вася.

Из этого примера видно, что создание и использование объектов не подразделяется на этапы. Объект можно модифицировать в любое время. Это одно из важных отличий от «традиционного» ООП.

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

Работа с объектами в JavaScript (часть 2)


Получайте новые статьи блога прямо себе на почту