Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java_Промышленное программирование1.doc
Скачиваний:
173
Добавлен:
13.04.2015
Размер:
5.58 Mб
Скачать

Пользовательские объекты

Для создания объекта используется конструктор, который определяет вид объекта и его поведение. Конструктор описывает шаблон вида реализованного объекта. Конструктор объекта может иметь вид:

function Book() {

}

Создание экземпляра объекта типа book будет иметь вид:

var myBook = new Book();

Конструктор может обращаться к создаваемому объекту, используя ключевое слово this. Таким образом можно добавить свойство создаваемому объекту:

function Book() {

this.paper = true;

}

var myBook = new Book();

alert(myBook.paper);

//выведет на экран true, т.к. все объекты типа Book будут иметь свойство paper со значением true

В конструктор можно передавать параметры, чтобы задать начальные свойства создаваемого объекта.

function Book(isPaper) {

if (isPaper) this.paper = true;

else this.paper = false;

}

var myBook = new Book(false);

alert(myBook.paper);

//выведет на экран false

Прототипы

Каждый объект имеет свойство prototype, которое определяет его структуру. Пример использования прототипирования объектов:

Book.prototype.paper = false;

Book.prototype.isPaperBook = function() {

if (this.paper) alert("This is a paper book");

else alert("This is not a paper book");

}

function Book(isPaper) {

if (isPaper) this.paper = true;

}

var myBook = new Book(true);

myBook.isPaperBook();

//выведет на экран фразу «This is a paper book»

В этом примере показано создание метода объекта и свойства, причем в прототипе описано, что свойство paper имеет значение false. Однако в конструкторе это свойство переопределяется, если при создании объекта конструктору передается параметр со значением true.

Хеш-таблицы в JavaScript

В языке JavaScript можно реализовать хеш-таблицу (то есть таблицу пар ключ-значение) несколькими способами, которые описаны ниже.

Объекты позволяют хранить и получать значения по ключам:

var h = new Object();

h.property = 10;

alert(h.property);

Следующий код будет выполнен, как ожидалось, и выведет на экран число 110:

var h = new Object();

h.property = 10;

h[0] = 100;

alert(h.property + h[0]);

Следует заметить, что свойства не конфликтуют между собой, то есть h.property и h[0] – два разных свойства объекта.

В квадратные скобки можно заключать не только числа:

var h = new Object();

h.property = 10;

var s = 'ty';

alert(h['proper' + s]);

То есть h['property'] то же самое, что и h.property.

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

var h = new Object();

h['property'] = 10;

alert(delete h['property']);

//выведет на экран true

alert(h['property']);

//выведет на экран undefined

Последний пример – перебор всех свойств объекта:

var h = new Object();

...

var props = '';

for(var i in h)

      props += i + ' : ' + h[i] + '\n';

alert(props);

Следует заметить, что переменная i внутри цикла содержит имя свойства, а не его значение.

Встроенные объекты Array, Date, Math Объект Array

Массив является объектом и имеет ряд свойств и методов. Единственным свойством массива является length, которое показывает количество элементов, содержащихся в массиве.

Ниже описаны основные методы массивов:

concat([item1 : { Object | Array } [, ... [, itemN : { Object | Array }]]]]) : Array – возвращает массив, состоящий из исходного массива и любого количества новых элементов;

join(separator : String) : String – возвращает строку, содержащую все элементы массива, разделенные строкой;

pop() : Object – удаляет последний элемент массива и возвращает его;

push([item1 : Object [, ... [, itemN : Object]]]) : Number – добавляет в конец массива новые элементы; если один из аргументов – массив, он добавляется как один элемент;

shift() : Object – удаляет первый элемент массива и возвращает его;

sort(sortFunction : Function ) : Array – возвращает отсортированный массив;

unshift([item1 : Object [, ... [, itemN : Object]]]) : Array – добавляет один или больше новых элементов в начало массива.