Object

by 3 contributors:

Сводка

Конструктор Object создаёт объект-обёртку.

Синтаксис

// Инициализатор объекта или литерал
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }

// Вызов в качестве конструктора
new Object([value])

Параметры

nameValuePair1, nameValuePair2, ... nameValuePairN
Пары из имён (строки) и значений (любые значения), где имя отделяется от значения двоеточием.
value
Любое значение.

Описание

Конструктор Object создаёт объект-обёртку для переданного значения. Если значением является null или undefined, создаёт и возвращает пустой объект, в противном случае возвращает объект такого типа, который соответствует переданному значению. Если значение уже является объектом, конструктор вернёт это значение.

При вызове в не-конструкторном контексте, Object ведёт себя идентично коду new Object().

Так же смотрите синтаксис инициализатора объекта / литеральный синтаксис.

Свойства конструктора Object

Справку по свойствам, доступным на экземплярах Object, смотрите в разделе Свойства экземпляров Object.

Object.length
Имеет значение 1.
Object.prototype
Позволяет добавлять свойства ко всем объектам типа Object.

Методы конструктора Object

Справку по методам, доступным на экземплярах Object, смотрите в разделе Методы экземпляров Object.

Object.assign()
Создаёт новый объект путём копирования значений всех собственных перечислимых свойств из одного или более исходных объектов в целевой объект.
Object.create()
Создаёт новый объект с указанными объектом прототипа и свойствами.
Object.defineProperty()
Добавляет к объекту именованное свойство, описываемое переданным дескриптором.
Object.defineProperties()
Добавляет к объекту именованные свойства, описываемые переданными дескрипторами.
Object.freeze()
Замораживает объект: другой код не сможет удалить или изменить никакое свойство.
Object.getOwnPropertyDescriptor()
Возвращает дескриптор свойства для именованного свойства объекта.
Object.getOwnPropertyNames()
Возвращает массив, содержащий имена всех переданных объекту собственных перечисляемых и неперечисляемых свойств.
Object.getOwnPropertySymbols()
Возвращает массив всех символьных свойств, найденных непосредственно в переданом объекте.
Object.getPrototypeOf()
Возвращает прототип указанного объекта.
Object.is()
Сравнивает, являются ли два значения различимыми (то есть, одинаковыми)
Object.isExtensible()
Определяет, разрешено ли расширение объекта.
Object.isFrozen()
Определяет, был ли объект заморожен.
Object.isSealed()
Определяет, является ли объект запечатанным (sealed).
Object.keys()
Возвращает массив, содержащий имена всех собственных перечислимых свойств переданного объекта.
Object.observe()
Асинхронно наблюдает за изменениями в объекте.
Object.preventExtensions()
Предотвращает любое расширение объекта.
Object.seal()
Предотвращает удаление свойств объекта другим кодом.
Object.setPrototypeOf()
Устанавливает прототип (то есть, внутреннее свойство [[Prototype]])

Экземпляры и прототип объекта Object

Все объекты в JavaScript являются потомками Object; все объекты наследуют методы и свойства из прототипа объекта Object.prototype, хотя они и могут быть переопределены. Например, прототипы других конструкторов переопределяют свойство constructor и предоставляют свои собственные методы toString(). Изменения в объекте прототипа Object распространяются на все объекты до тех пор, пока свойства и методы, учитывающие эти изменения, не переопределяются дальше по цепочке прототипов.

Свойства

Object.prototype.constructor
Определяет функцию, создающую прототип объекта.
Object.prototype.__proto__
Указывает на объект, который использовался в качестве прототипа при инстанцировании объекта.
Object.prototype.__noSuchMethod__
Позволяет определить функцию, выполняющуюся при вызове в качестве метода не определённого члена объекта.
Object.prototype.__count__
Использовалось для возврата количества перечисляемых свойств, определённых напрямую на пользовательском объекте, но было удалено.
Object.prototype.__parent__
Использовалось для указания контекста объекта, но было удалено.

Методы

Object.prototype.__defineGetter__()
Ассоциирует функцию со свойством, которое, при доступе к нему, выполняет эту функцию и возвращает её возвращаемое значение.
Object.prototype.__defineSetter__()
Ассоциирует функцию со свойством, которое, при его установке, выполняет эту функцию, изменяющую свойство.
Object.prototype.__lookupGetter__()
Возвращает функцию, ассоциированную с указанным свойством методом __defineGetter__.
Object.prototype.__lookupSetter__()
Возвращает функцию, ассоциированную с указанным свойством методом __defineSetter__.
Object.prototype.hasOwnProperty()
Возвращает логическое значение, указывающее, содержит ли указанное свойство непосредственно объект, или он унаследовал его по цепочке прототипов.
Object.prototype.isPrototypeOf()
Возвращает логическое значение, указывающее, состоит ли указанный объект в цепочке прототипов объекта, на котором был вызван данный метод.
Object.prototype.propertyIsEnumerable()
Возвращает логическое значение, указывающее, установлен ли внутренний атрибут ECMAScript DontEnum.
Object.prototype.toSource()
Возвращает строку, содержащую исходный код объекта в литеральной форме, представляющего объект, на котором был вызван данный метод; вы можете использовать это значение для создания нового объекта.
Object.prototype.toLocaleString()
Вызывает toString().
Object.prototype.toString()
Возвращает строковое представление объекта.
Object.prototype.unwatch()
Удаляет точку наблюдения (watchpoint) со свойства объекта.
Object.prototype.valueOf()
Возвращает значение примитива указанного объекта.
Object.prototype.watch()
Добавляет точку наблюдения (watchpoint) к свойству объекта.
Object.prototype.eval()
Использовался для вычисления строки с JavaScript-кодом в контексте указанного объекта, но был удалён.

Примеры

Пример: использование Object с типами undefined и null

Следующий пример сохраняет пустой объект Object в переменную o:

var o = new Object();
var o = new Object(undefined);
var o = new Object(null);

Пример: использование Object для создания объектов Boolean

Следующий пример сохраняет объекты Boolean в переменную o:

// эквивалентно o = new Boolean(true);
var o = new Object(true);
// эквивалентно o = new Boolean(false);
var o = new Object(Boolean());

Спецификации

Спецификация Статус Комментарии
ECMAScript 1-е издание. Стандарт Изначальное определение. Реализована в JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
Определение 'Object' в этой спецификации.
Стандарт  
ECMAScript 6 (ECMA-262)
Определение 'Object' в этой спецификации.
Кандидат в рекомендации  

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Метки документа и участники

Contributors to this page: Mingun, teoli, pashak
Обновлялась последний раз: Mingun,