Обєкти JavaScript. Частина 2

37

Від автора: вітаю вас, друзі. У цій статті ми з вами продовжимо знайомитися з найбільш складним, але й не менш цікавим типом даних в JavaScript — мова йде про об’єкти. Приступимо?

Нагадаю, у попередній статті ми з вами дізналися, як можна створювати об’єкти і додавати в них властивості. Також ми тепер знаємо, як звернутися до того чи іншого властивості об’єкта і отримати його значення. Тепер давайте більш детально попрацюємо з властивостями об’єктів.

У властивість об’єкта можна зберегти будь-яке значення, хоч рядок, хоч число. І властивостей об’єкта може бути як завгодно багато. Оскільки об’єкт можна додавати властивості динамічно, то в певний момент роботи програми нам може знадобитися перевірити, а чи є в об’єкті те чи інше властивість. Зробити це можна двома способами.

Перший спосіб використовується частіше і полягає він у тому, що ми перевіримо значення потрібного властивості. Якщо це значення undefined, значить властивості такого немає. В іншому випадку властивість є:

var names = {
name1: ‘John’,
name2: ‘James’
};
console.log(names.name1);
console.log(names.name2);
console.log(names.name3);

Відповідно, можемо використовувати умову:

var names = {
name1: ‘John’,
name2: ‘James’
};
if(names.name1 === undefined){
console.log(‘Властивість name1 не визначено’);
}
if(names.name2 === undefined){
console.log(‘Властивість name2 не визначено’);
}
if(names.name3 === undefined){
console.log(‘Властивість name3 не визначено’);
}

Результатом буде висновок консоль єдиною рядка, що повідомляє нам, що властивість name3 не визначено.

Другим варіантом перевірки наявності властивості є оператор in, який використовується наступним чином:

var names = {
name1: ‘John’,
name2: ‘James’
};
if(!(«name1» names in)){
console.log(‘Властивість name1 не визначено’);
}
if(!(«name2» names in)){
console.log(‘Властивість name2 не визначено’);
}
if(!(«name3» names in)){
console.log(‘Властивість name3 не визначено’);
}

Результат буде аналогічний попередньому. Ну і в кінці статті давайте познайомимося з альтернативним синтаксисом доступу до властивостей об’єкта — через квадратні дужки (досі ми зверталися через крапку).

var names = {
name1: ‘John’,
name2: ‘James’
};
console.log(names.name1);
console.log(names[‘name1’]);

Обидва варіанти доступу до властивості об’єкта — ідентичні. Однак на практиці іноді без квадратних дужок не обійтися. Наприклад, якщо ім’я властивості включає в себе прогалини:

var names = {};
names.name 1 = ‘John’;
console.log(names);

Код вище поверне синтаксичну помилку, оскільки інтерпретатор JavaScript вважатиме ім’ям властивості рядок до пробілу.

А ось з використанням квадратних дужок все буде працювати:

var names = {};
names[‘name 1’] = ‘John’;
console.log(names);

Звичайно, використовувати такі імена властивостей не прийнято, але тим не менш все може бути і без дужок тут не обійтися. На цьому ми завершимо поточну статтю. Якщо ви хочете більше дізнатися про JavaScript, тоді рекомендую звернути свою увагу на уроки по JavaScript і окремий курс по мові JavaScript. Удачі!