Сводка
Конструктор Object
создаёт объект-обёртку.
Синтаксис
// Инициализатор объекта или литерал
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }
// Вызов в качестве конструктора
new Object([value])
Параметры
nameValuePair1, nameValuePair2, ... nameValuePairN
- Пары из имён (строки) и значений (любые значения), где имя отделяется от значения двоеточием.
value
- Любое значение.
Описание
Конструктор Object
создаёт объект-обёртку для переданного значения. Если значением является null
или undefined
, создаёт и возвращает пустой объект, в противном случае возвращает объект такого типа, который соответствует переданному значению. Если значение уже является объектом, конструктор вернёт это значение.
При вызове в не-конструкторном контексте, Object
ведёт себя идентично коду new Object()
.
Так же смотрите синтаксис инициализатора объекта / литеральный синтаксис.
Свойства конструктора Object
Object.length
- Имеет значение 1.
Object.prototype
- Позволяет добавлять свойства ко всем объектам типа
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 2015 (6th Edition, ECMA-262) Определение 'Object' в этой спецификации. |
Стандарт |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |