HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов
Шрифт:
После выполнения Web-сценария
var s1 = s.substr(4);
var s2 = s.substr(4, 2);
в переменной s1 окажется строка "Script", а в переменной s2 — строка "Sc".
Объект Number служит для хранения чисел, а объект Boolean — логических величин:
var n = 123;
var b = false;
Числа и логические величины с точки зрения JavaScript также представляют собой экземпляры соответствующих объектов.
Объект Array служит для хранения массивов:
var a = [1, 2, 3, 4];
Он поддерживает единственное свойство length, возвращающее размер массива, т. е. число
var l = a.length;
var l = [1, 2, 3, 4].length;
Уже знакомый нам объект Math, единственный экземпляр которого создается самим JavaScript и хранится в переменной Math, представляет набор методов для выполнения математических и тригонометрических вычислений.
Мы не будем рассматривать здесь все встроенные объекты JavaScript и поддерживаемые ими свойства и методы. Это можно найти в любой книге по JavaScript- программированию.
Объект Object и использование его экземпляров
Но об одном встроенном объекте следует поговорить особо. Это объект Object, весьма специфический.
Экземпляры этого объекта обычно используются для хранения сложных структур данных, включающих произвольный набор свойств и методов. Один экземпляр объекта Object может иметь один набор свойств и методов, а другой экземпляр — совсем другой.
Экземпляры объекта Object создают с помощью особых выражений, называемых инициализаторами. Инициализатор чем-то похож на определение стиля (листинг 14.12).
Листинг 14.12
{
<имя свойства 1>: <значение свойства 1>,
<имя свойства 2>: <значение свойства 2>,
.
<имя свойства n-1>: <значение свойства n-1>;
<имя свойства n>: <значение свойства n>
<имя метода 1>: <функция, реализующая метод 1>,
<имя метода 2>: <функция, реализующая метод 2>,
.
<имя метода n-1>: <функция, реализующая метод n-1>,
<имя метода n>: <функция, реализующая метод n>
}
После выполнения инициализатора JavaScript вернет нам готовый экземпляр объекта Object, который мы можем присвоить какой-либо переменной или использовать в качестве параметра функции или метода.
Пример:
var oConfig = { tag: "DIV", id: "cother", html: "Это прочие сведения." };
Здесь мы получили экземпляр объекта Object со свойствами tag, id и html, задали для этих свойств значения и сохранили получившийся экземпляр в переменной oConfig.
Пример:
var oConfig2 = { url: "pages/t_img.htm",
success: function (response, opts){
var obj = Ext.decode(response.responseText);
}
};
А здесь мы создали экземпляр объекта Object со свойством url и методом success и сохранили получившийся экземпляр в переменной oConfig2. (Код последнего
Обратим внимание на два момента. Во-первых, функцию, реализующую метод success, мы объявили прямо в инициализаторе. Во-вторых, создание метода в данном случае — суть присваивание функции, которая реализует этот метод, свойству, имя которого станет именем метода. Следовательно, здесь тот же самый случай, что и с присваиванием функции переменной (см. раздел, посвященный функциям).
Экземпляры объекта Object в библиотеке Ext Core обычно служат для задания различных необязательных параметров и создаются как раз с помощью инициализаторов. Так что мы часто будем иметь с ними дело.
Объекты Web-обозревателя. Объектная модель документа DOM
Объекты, предоставляемые Web-обозревателем, делятся на две группы:
— объекты, представляющие Web-страницу и элементы, созданные с помощью разных тегов (абзац, заголовок, таблица, изображение и др.);
— объекты, представляющие сам Web-обозреватель. Начнем с объектов первой группы.
Как мы уже знаем, саму Web-страницу представляет объект HTMLDocument. Единственный экземпляр данного объекта хранится в переменной document и представляет Web-страницу, открытую в текущем окне Web-обозревателя.
Отдельный элемент Web-страницы, независимо от тега, с помощью которого он создан, представляется объектом HTMLElement. На этом объекте основаны другие объекты, представляющие элементы Web-страницы, которые созданы на основе определенных тегов. Так, абзац представляется объектом HTMLParagraphElement, изображение — объектом HTMLImageElement, гиперссылка — объектом HTMLLinkElement, а таблица — объектом HTMLTableElement.
Для каждого элемента загруженной Web-страницы Web-обозреватель создает экземпляр соответствующего объекта. Например, для каждого абзаца создается экземпляр объекта HTMLParagraphElement, для каждого изображения — экземпляр объекта HTMLImageElement, для каждой гиперссылки — экземпляр объекта HTMLLinkElement, а для каждой таблицы — экземпляр объекта HTMLTableElement.
В результате в памяти компьютера создается структура взаимосвязанных экземпляров объектов, соответствующая структуре элементов Web-страницы. Она называется объектной моделью документа, или DOM (сокращение от Document Object Model — объектная модель документа).
Объект HTMLDocument поддерживает ряд методов для доступа к нужному элементу Web-страницы, в смысле — к представляющему его экземпляру соответствующего объекта. Обычно для уникальной идентификации элемента Web-страницы используется значение атрибута тега ID. Мы поговорим об этом подробнее в главе 15.
Объект HTMLElement поддерживает свойства и методы, общие для всех типов элементов Web-страницы. Они позволяют получить или задать значение какого-либо атрибута тега, привязать к нему стилевой класс, вставить в элемент Web-страницы другой элемент в качестве дочернего и пр. Объекты, созданные на основе HTMLElement, расширяют этот набор свойств и методов.