В настоящее время JavaScript не обладает большими возможностями работы с объектными моделями, так как для этого есть специализированный языки (Java, Perl), но даже те ограниченные возможности особенности могут быть иногда весьма полезны.
Разработчик может использовать объекты JavaScript для того, что бы существенно сократить время , потраченное на разработку кода и его тестирование.
Прежде чем перейти непосредственно к конструктору объектов, заметим, что в JavaScript “объектный конструктор” – это просто набор конструкций программы, который выполняет определенные задания. Они содержат основные правила для объекта, конкретизируют, что может делать объект. Типичный объектный конструктор содержит как переменные, так и функции, которые формируют экземпляр объекта.
Каждый экземпляр объекта имеет определенные характеристики или “свойства” и заранее предопределенные функции или “методы”.
Как только объект создан, JavaScript позволяет формировать любое количество экземпляров объекта. Каждый из этих экземпляров – это целый независимый объект с собственными свойствами и методами и может управляться независимо от других объектов.
Как правило, объекты целесообразно использовать в таких ситуациях, когда необходимо создать более одного экземпляра объекта (например, многоуровневые меню).
К преимуществами объектного кода так же можно отнести то, что вам код становится модульным, то есть более читабельным. Объектный конструктор можно включить в отдельный файл и подключать в другие файлы, там, где необходимо создавать объекты. Если возникнет необходимость добавления новых свойств и методов объекта, достаточно отредактировать только один файл, в котором находится конструктор объектов.
На самом деле, вы, возможно уже создавали объекты, но просто не придавали этому значения. Например:
< script language="JavaScript"> a = new Image(); < /script>
создаст новый экземпляр объекта Image, а при использовании кода
< script language="JavaScript"> x = new Date(); < /script>
будет создан Date объект.
JavaScript содержит множество встроенных объектов с заранее предопределенными свойствами и методами.
По сути дела, создание объекта идентично написанию функции в JavaScript:
< script language="JavaScript"> // объектный конструктор function Sumthing() { } < /script>
Вы можете создать собственный экземпляр объекта Sumthing:
< script language="JavaScript"> // экземпляр объекта obj = new Sumthing(); < /script>
Обратите внимание на ключевое слово “new” – лишь при использовании его JavaScript создаст новый экземпляр объекта, а не просто выполнит данную функцию.
Для проверки, был ли создан экземпляр объекта, можно воспользоваться следующим кодом:
< script language="JavaScript"> obj = new Sumthing(); alert(obj); < /script>
Добавим в объект несколько переменных:
< script language="JavaScript"> // конструктор объекта function Sumthing(num1, num2) { // свойства объекта this.alpha = num1; this.beta = num2; } < /script>
Объект Sumthing имеет два свойства alpha и beta. Теперь можно создать новых экземпляр объекта Sumthing и передать ему два параметра (num1 и num2), которые объект воспримет как объектные свойства (alpha и beta). Обратите внимания, что для обращения к объекту используется ключевое слово “this”, которые указывает на то, что обращение идет именно к тому объекту, с которым вы работаете (т.е. к локальному конструктору объектов).
Для примера выполним следующий скрипт:
< script language="JavaScript">
obj = new Sumthing(2, 89);
alert("alpha is " + obj.alpha);
alert("beta is " + obj.beta);
< /script>
Точно так же, как вы определяете объектные свойства, вы можете определить объектные метода. Создадим метод Add(), который будет суммировать значения переменных alpha и beta:
< script language="JavaScript"> // конструктор объекта function Sumthing(num1, num2) { // свойства объекта this.alpha = num1; this.beta = num2; // методы объекта this.Add = Add; } // объектный метод Add() – суммирование аргументов function Add() { sum = this.alpha + this.beta; return sum; } < /script>
Необходимо заметить, что метод сначала создается как обычная функция вне конструктора объекта, а затем в конструкторе объектов указывается ссылка на него this.Add = Add.
Продемонстрируем работу метода Add:
< script language="JavaScript"> // первый объект obj1 = new Sumthing(2, 89); alert(obj1.Add()); // сумма 2 и 89 равна 91 // второй объект obj2 = new Sumthing(546, 67); alert(obj2.Add()); // сумма 546 и 67 равна 613 < /script>
Точно так же, как вы передаете параметры объекту, вы можете использовать объекта как параметр для другого объекта:
< script language="JavaScript"> // Объект Room // содержит данные о размерах и цвете комнаты function Room(area, colour) { this.area = area; this.colour = colour; } // Объект дом // принимает price как параметр function House(price, room) { this.price = price; this.obj = room; } < /script>
Теперь можно передать объект как параметр:
< script language="JavaScript"> Kitchen = new Room(500, "white"); RedGables = new House(89000, Kitchen); alert(RedGables.obj.area); < /script>
Также есть еще несколько интересных особенностей объектов JavaScript. Например, вы можете получить полную информацию о конструкторе объекта через слово “constructor”:
< script language="JavaScript"> // конструктор объекта function Sumthing(num1, num2) { // свойства объекта this.alpha = num1; this.beta = num2; } alpha = new Sumthing(23, 865); alert("The object constructor for alpha is " + alpha.constructor); < script>
Вы можете использовать ключевое слово “prototype” что бы добавить новые свойства к уже существующему объекту:
< script language="JavaScript"> // Объект Room function Room(area, colour) { this.area = area; this.colour = colour; } // новое свойство direction объекта Room Room.prototype.direction = "east"; < /script>
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.