- •13. Вложенные функции. Работа с вложенными функциями
- •14. Объекты JavaScript. Понятие объекта. Виды объектов
- •15. Объект String(строка) , его свойства и методы Создание
- •Взятие подстроки: substr, substring, slice
- •Строчные буквы идут после заглавных, поэтому они всегда больше.
- •Ряд букв, например ё, находятся вне основного алфавита.
- •16. Объекты Math, Date, их свойства и методы
- •Функции общего назначения:
- •Создание
- •Возможные аргументы
- •17. Создание пользовательских объектов JavaScript. Добавление свойств и методов
- •Операции со свойствами объекта
- •Методы объекта
- •18. Dom. Понятие объектной модели документа. Методы поиска элементов на веб-странице
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>"); //выводит имена и значения свойств
}
