Свойства объекта Object

Создание объекта Object

Объект Object

Объект Object обеспечивает свойства и методы, общие для всех встроенных объектных типов JavaScript. Предложение создания объекта типа Object имеет следующий синтаксис:

var имя-переменной = new Object(значение);

Значение, задаваемое в конструкторе, может быть базового типа (числовое, строковое или булевское). Если значение является объектом, то объект возвращается без изменения. Если значение равно null, undefined или не задано, возвращается объект без содержимого. Объект Object можно также создать прямым вызовом функции-конструктора Object.

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

Для объекта Object определено два свойства: prototype и constructor. Эти свойства доступны во всех встроенных объектах, кроме Math и Global.

Свойство prototype возвращает ссылку на прототип для данного объекта. С помощью этого свойства нельзя переопределять свойства и функции встроенного объекта, можно только получить их значения. Однако свойство prototype можно использовать для добавления новых свойств и функций к объектам. После такого добавления новые свойства и функции можно использовать для объектов данного типа таким же образом, как свойства и объекты данного типа, определенные по умолчанию.

Свойство constructor определяет функцию-конструктор, которая создает экземпляр объекта для данного объекта-прототипа.

Пример 4.4.60. Использование свойств prototype и constructor объекта Object:

1. // Функция определения максимального значения в массиве

function arrayMax()

{

// Установка начального значения максимума

max = this[0];

// Цикл по элементам массива

for (i = 1; i < this.length; i++)

{

// Если текущий элемент больше максимума

if(this[i] > max)

// Присвоение максимуму значения

// текущего элемента

max = this[i];

}

// Возврат значения максимума

return max;

}

// Объявление функции arrayMax

// как прототипа для объекта Array

Array.prototype.max = arrayMax;

// Определение нового свойства description

// (описание) для объекта Array

Array.prototype.description = null;

var a = new Array(5,7,9,1,-5); // Объявление массива a

// Присвоение значения свойству description

a.description = "Массив чисел a";

// Получение максимума для массива a

amax = a.max();

// Вывод массива a и максимума для массива a

alert(a.description + "='" + a + "' amax=" + amax);

В этом фрагменте сценария для встроенного объекта Array задается прототип max для определения максимального значения элемента массива и прототип description для свойства описания массива, а также приведен пример присвоения значения свойству description и вызова функции arrayMax():

2. // Создание объекта типа Date

x = new Date();

// Если объект x создан с помощью конструктора Date

if (x.constructor == Date)

// Вывод сообщения

alert("Объект d является объектом типа Date");

else

// Вывод сообщения

alert("Объект d не является объектом типа Date");

В этом фрагменте сценария с помощью свойства constructor определяется объект-прототип для объекта типа Date:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: