Объект
Object — это примитивный объектный тип, производными которого являются все остальные объекты языка JavaScript. Он имеет две формы конструктора:
new Object()
new Object(значение)
Здесь
значение — любое выражение, задающее примитивное значение объекта. Если оно не указано, то создается пустой объект. Для создания пустого объекта можно также использовать
инициализатор объекта:
{}
Примеры:
var a = new Object(); // пустой объект
var b = {}; // то же самое
var c = new Object(true); // примитивное значение объекта true
Объект
Object содержится во всех объектах JavaScript, поэтому все его методы и свойства им доступны. Методы данного объекта могут быть переопределены в пользовательских объектах.
Свойства объекта Object
Свойство |
Описание |
Член прототипа |
constructor |
Конструктор, который создал объект. |
Да |
prototype |
Ссылка на прототип класса объектов. |
Да |
Методы объекта Object
Метод |
Описание |
Член прототипа |
hasOwnProperty |
Проверяет наличие заданного свойства. |
Да |
isPrototypeOf |
Проверяет, является ли объект прототипом данного объекта. |
Да |
propertyIsEnumerable |
Проверяет наличие заданного итерируемого свойства. |
Да |
toLocaleString |
Преобразует объект в строку с учетом формата операционной системы. |
Да |
toString |
Преобразует объект в строку. |
Да |
valueOf |
Возвращает примитивное значение объекта. |
Да |
Синтаксис: объект.constructor
Атрибуты: { DontEnum, DontDelete, ReadOnly }
Значением свойства
constructor является функция, которая была конструктором данного
объекта. Подчеркнем, что это не текстовая строка, содержащая имя функции, а именно функция (точнее, ссылка на нее). Примеры:
function Tobacco(name) {
this.name=name
}
theTobacco = new Tobacco("Camel")
if (theTobacco.constructor == Tobacco) ( ... }
document.write("theTobacco.constructor: " + theTobacco.constructor)
Последний оператор примера выведет на экран обозревателя текст:
theTobacco.constructor: function Tobacco(name) { this.name=name }
Синтаксис: объект.prototype
Атрибуты: { DontEnum, DontDelete, ReadOnly }
Значением свойства
prototype является ссылка на прототип данного
объекта. Прототип используется для динамического добавления или удаления свойств и методов класса объектов.
Прототипы встроенных объектов имеют атрибут
ReadOnly. В данном случае это означает, что изменять его набор свойств можно, но заменить прототип встроенного объекта нельзя. С другой стороны, прототипы пользовательских объектов допускают присваивание; тем самым мы задаем, какой объект является прототипом данного.
Синтаксис: объект.hasOwnProperty(имя)
Аргумент: имя — любое строковое выражение
Результат: логическое значение
Поддержка:
Поддерживается с версии 5.5.
Не поддерживается.
Метод
hasOwnProperty возвращает
true, если
объект имеет свойство с данным
именем, и
false в противном случае. Этот метод не проверяет наличие свойства по цепочке прототипов; указанным свойством должен обладать именно сам
объект. Пример:
var a = new Array();
var b1 = a.hasOwnProperty("join"); // false
var b2 = Array.prototype.hasOwnProperty("join"); // true
Синтаксис: объект.isPrototypeOf(имя)
Аргумент: имя — любое объектное выражение
Результат: логическое значение
Поддержка:
Поддерживается с версии 5.5.
Не поддерживается.
Метод
isPrototypeOf возвращает
true, если
имя является объектом и
объект содержится в цепочке его прототипов, и
false в противном случае. Пример:
var a = new Array();
var b = Array.prototype.isPrototypeOf(a); // true
Синтаксис: объект.propertyIsEnumerable(имя)
Аргумент: имя — любое строковое выражение
Результат: логическое значение
Поддержка:
Поддерживается с версии 5.5.
Не поддерживается.
Метод
propertyIsEnumerable возвращает
true, если
объект имеет свойство с данным
именем и это свойство не имеет атрибута
DontEnum, и
false в противном случае. Этот метод не проверяет наличие свойства по цепочке прототипов; указанным свойством должен обладать именно сам
объект.
Синтаксис: объект.toLocaleString()
Результат: строковое значение
Метод
toLocaleString преобразует
объект в строковое значение, учитывая формат операционной системы. Результат зависит от объекта. По умолчанию возвращает строку
"[object имя_объекта]", где
имя_объекта — это имя данного класса объектов, т. е. совпадает с методом
toString.
Синтаксис: объект.toString()
Результат: строковое значение
Метод
toString преобразует
объект в строковое значение. Результат зависит от объекта. По умолчанию возвращает строку
"[object имя_объекта]", где
имя_объекта — это имя данного класса объектов.
Этот метод автоматически вызывается исполняющей системой JavaScript всякий раз, когда требуется неявное преобразование объекта в строку.
Синтаксис: объект.valueOf()
Результат: зависит от объекта
Метод
valueOf возвращает примитивное значение
объекта. Результат зависит от объекта. По умолчанию возвращает строку
"[object имя_объекта]", где
имя_объекта — это имя данного класса объектов.
Обычно этот метод вызывается исполняющей системой JavaScript неявно при выполнении автоматического преобразования типов.