Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы с 13 по 18 3.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
119.75 Кб
Скачать

17. Создание пользовательских объектов JavaScript. Добавление свойств и методов

Объект можно создать самостоятельно с помощью литерала объекта или оператора new с конструктором.

Литерал объекта – это заключённый в фигурные скобки список из нуля или более свойств (пар имя : значение), разделённых запятыми. Именем свойства может быть любой допустимый идентификатор, строковой литерал (допускается использовать пустую строку) или число. Числовые имена свойств автоматически преобразуются в строки. Значением свойства может быть значение любого типа или выражение (значением свойства в этом случае станет результат вычисления выражения):

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

var o = {};

// Создание объекта с тремя свойствами

var user = {

  name: "Homer",

  "age": 45,

  1: true

};

Создание объекта с помощью оператора new:

var o = new Object();

Операции со свойствами объекта

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

Добавить новое свойство в объект можно, присвоив свойству значение. Чтобы присвоить свойству значение, к нему нужно получить доступ. Для доступа к свойству используется один из операторов доступа: . (точка) или [] (квадратные скобки):

var person = {};

person.name = ‘Вася’;       // Добавили новое свойство

person['name'] = ‘Вася’;   // Добавили новое свойство

Записи person['name'] и person.name идентичны, но квадратные скобки позволяют использовать в качестве имени свойства любую строку: person['любимый стиль музыки'] = 'Джаз';. Такое присвоение было бы невозможно «через точку», так интерпретатор после первого пробела подумает, что свойство закончилось, и далее выдаст ошибку: person.любимый стиль музыки = 'Джаз'; // ??? ошибка.

Обращение к свойству и изменение значения осуществляется точно так же (с помощью операторов доступа):

var o = {x: 5};

alert(o.x);      // Обращение к свойству

alert(o["x"]);   // Обращение к свойству

o.x = 10;        // Изменяем значение

Значением свойства может быть объект:

var obj = {

  name: "Гомер",

  colors: {

    first: "yellow",

    second: "blue"

   }

};

document.write(obj.colors.first); //для доступа к значениям свойств используется стандартный синтаксис

Удаление свойства осуществляется с помощью оператора delete:

var homer = {

  name: "Гомер Симпсон",

  age: 34,

  married: true

};

delete homer.age;

Для перебора свойств объекта используется цикл for-in. Синтаксис:

for (var имя_переменной in объект) {

  ...   //операторы

}

Перед исполнением цикла имя одного из свойств присваивается переменной в виде строки. В теле цикла эту переменную можно использовать как для получения имени свойства так и для получения значения свойства с помощью оператора [].

var homer = {

  name: "Гомер Симпсон",

  age: 34,

  married: true

};

 

document.write ("до удаления свойства: <br>")

for (var name in homer) {

document.write(name + "<br>");  //выводит имена свойств

}

 

delete homer.age;

 

document.write("<br> после удаления свойства: <br>")

for (var name in homer) {

document.write(name + " = " + homer[name] + "<br>");  //выводит имена и значения свойств

}