Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / JavaScript /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Использование объектов - Программирование от RIN.RU
Использование объектов

Объекты, свойства и методы




Основные понятия


Как уже отмечалось выше, JavaScript - это язык программирования, основанный на объектах. Все объекты, доступные сценарию на языке JavaScript, подразделяются на три группы:


  • встроенные объекты исполняющей системы;

  • объекты среды, в которой исполняется сценарий (т. е. либо объекты клиента, либо объекты сервера);

  • пользовательские объекты, создаваемые сценарием в процессе его выполнения.


Объект JavaScript - это неупорядоченный набор свойств. Свойство, являющееся функцией, называется методом. Для доступа к свойству объекта используется синтаксис:


имя_объекта.имя_свойства


Если название свойства задано текстовой строкой, то доступ к свойству возможен и так:


имя_объекта["имя_свойства"]


Этот синтаксис используется оператором итерации for:in.


Каждое свойство состоит из названия, значения и набора следующих атрибутов:

АтрибутОписание
DontEnumСвойство не должно попадать в перечисление при итерации объекта оператором for:in.
DontDeleteПопытка программно удалить данное свойство будет проигнорирована. См. описание операции delete.
ReadOnlyНеизменяемое свойство. Попытка программно изменить данное свойство будет проигнорирована. (Отметим, что в некоторых случаях значение свойства с этим атрибутом может быть изменено через внешнюю среду.)



Новое свойство объекта создается просто присваиванием ему значения. Пусть, например, мы уже создали объект myBrowser, который должен описывать наш Веб-обозреватель. Это описание будет состоять из названия обозревателя (name) и его версии (version). Для создания указанных свойств мы должны включить в сценарий следующие строки:


myBrowser.name = "Microsoft Internet Explorer";
myBrowser.version = "5.5";


У таких свойств, созданным пользователем, все перечисленные выше атрибуты сброшены в false. В дальнейшем мы можем изменять значения этих свойств или извлекать их, например:


document.write(myBrowser.name, myBrowser.version);


Существует два способа создания новых объектов в JavaScript, а именно:


  • Использование инициализатора объекта.

  • Использование конструктора объектов.




Создание объектов с помощью инициализатора


Этот способ позволяет одновременно создать объект и присвоить значения всем или части его свойств. Он применяется в тех случаях, когда мы создаем объект с уникальным набором свойств. Инициализатор объекта имеет вид:


{свойство:значение [,свойство:значение]?}


Здесь свойство - идентификатор, задающий имя свойства, а значение - выражение, задающее значение этого свойства.


Например, объект myBrowser из предыдущего примера может быть создан так:


var myBrowser = {name: "Microsoft Internet Explorer", version: "5.5"};


Усложним этот пример, добавив еще одно свойство объекта myBrowser, которое называется options (опции обозревателя) и само является объектом:


var myBrowser = {name: "Microsoft Internet Explorer", version: "5.5",
options: {enableJava: true, enableCookies: false}};


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


Этот способ применяется в тех случаях, когда мы хотим создать класс объектов с определенным набором свойств, а затем создавать новые объекты, просто указывая, к какому классу они должны принадлежать. Для этого нужно сначала создать конструктор объектов, который является функцией специального вида, а именно:


  • имя функции задает имя создаваемого класса объектов;

  • тело функции должно содержать присваивание начальных значений свойствам и методам создаваемого объекта.


Например, конструктор для класса объектов Browser из предыдущего примера может иметь следующий вид:


function Browser(name, version) {
this.name = name;
this.version = version;
}


Обратите внимание на использование операции this для доступа к свойствам объекта.


Теперь для создания новых объектов класса Browser достаточно вызвать этот конструктор в операции new, например:


var myBrowser = new Browser("Microsoft Internet Explorer", "5.5");


Вспомним теперь, что выше мы добавили свойство options объекта Browser, которое само является объектом. Перепишем приведенный пример с учетом этого свойства:


function Options(enableJava, enableCookies) {
this.enableJava = enableJava;
this.enableCookies = enableCookies;
}


function Browser(name, version) {
this.name = name;
this.version = version;
this.options = options;
}


var myOptions = new Options(true, false);
var myBrowser = new Browser("Microsoft Internet Explorer", "5.5", myOptions);


Для доступа к свойствам свойства options используется нотация myBrowser.options.enableJava.


Создание методов


Поскольку методы являются разновидностью свойств, они создаются так же, как описано выше. Например, мы можем добавить к конструктору объектов Browser метод aboutBrowser, который будет выводить на экран обозревателя информацию о свойствах этого объекта:


function showBrowser() {
document.write("Обозреватель: " + this.name + " " + this.version);
}


function Browser(name, version) {
this.name = name;
this.version = version;
this.aboutBrowser = showBrowser;
}


В дальнейшем мы можем вызвать этот метод так: myBrowser.aboutBrowser().


При желании конструктор можно записать и короче, используя вложенное определение функции:


function Browser(name, version) {
this.name = name;
this.version = version;
this.aboutBrowser = function() {
document.write("Обозреватель: " + this.name + " " + this.version);
}
}


Изменение прототипа объекта


Допустим, что мы хотим в процессе выполнения сценария добавить новое свойство security (безопасность) классу объектов Options (подчеркнем еще раз - классу объектов, а не отдельному его представителю myOptions). Для этого используется свойство prototype объекта Function:


Options.prototype.security = null;


Теперь мы можем присвоить значение новому свойству объекта:


myBrowser.options.security = "Высокая";


Для удаления свойств объектов используется операция delete, например:


delete Options.prototype.security;


JavaScript позволяет нам задать новый прототип для класса пользовательских объектов (прототипы встроенных объектов доступны только для чтения). Рассмотрим такой пример:


function Circle(radius) {
this.radius = radius;
}


Circle.prototype.area = function() {
return Math.PI * this.radius * this.radius;
}


function FullCircle(x, y, radius) {
this.x = x;
this.y = y;
this.radius = radius;
}


FullCircle.prototype = Circle.prototype;


var myCircle = new FullCircle(0, 0, 1);
document.write(myCircle.area());


В этом примере сначала определяется класс объектов Circle со свойством radius и методом area, возвращающим площадь круга. Затем определяется класс FullCircle, конструктор которого дополнительно содержит координаты центра окружности. Затем указывается, что он наследует прототип класс Circle. После этого мы создаем объект myCircle и вызываем его метод area, который он унаследовал от прототипа класса Circle.


Удаление объектов


Мы можем удалить ранее созданный объект с помощью операции delete, например:


delete myBrowser;


Вперед  >>>
 1  2 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Основные понятия

Типы данных

Выражения и операции

Регулярные выражения

Операторы и функции

Примитивные встроенные объекты

Строки: встроенный объект String

Массивы: встроенный объект Array

Дата и время: встроенный объект Date

Встроенные объекты Error, Math и RegExp

Дополнительные возможности JScript

Исполняющая система JScript

Исполняющая система JScript (продолжение)

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь