Object
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
* Some parts of this feature may have varying levels of support.
Тип Object представляет один из типов данных JavaScript. Он используется для хранения различных коллекций с ключами и более сложных сущностей. Объекты могут быть созданы с использованием конструктора Object() или синтаксиса инициализатора / литерала объекта.
Описание
Почти все объекты в JavaScript являются экземплярами Object; типичный объект наследует свойства (включая методы) от Object.prototype, хотя эти свойства могут быть затенены (т.е. переопределены). Единственные объекты, которые не наследуют от Object.prototype, - это те, у которых прототип null, или которые происходят от других объектов с прототипом null.
Изменения в объекте Object.prototype видны всем объектам с помощью цепочки прототипов, если свойства и методы, подверженные этим изменениям, не переопределены дальше по цепочке прототипов. Это предоставляет очень мощный, хотя и потенциально опасный механизм для переопределения или расширения поведения объектов. Для обеспечения большей безопасности, Object.prototype - единственный объект в основном языке JavaScript, у которого неизменяемый прототип - прототип Object.prototype всегда null и не может быть изменен.
Синтаксис
// Инициализатор объекта или литерал
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }
// Вызов в качестве конструктора
new Object([value])
Параметры
nameValuePair1, nameValuePair2, ... nameValuePairN-
Пары из имён (строки) и значений (любые значения), где имя отделяется от значения двоеточием.
value-
Любое значение.
Свойства конструктора 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()-
Превращает входные данные в объект.
Object.prototype.constructor-
Указывает функцию, которая создает прототип объекта.
Object.prototype.__proto__Устарело-
Указывает на объект, который использовался в качестве прототипа при создании экземпляра объекта.
Методы
Object.prototype.__defineGetter__()-
Связывает функцию со свойством, которое при обращении к нему выполняет эту функцию и возвращает ее возвращаемое значение.
Object.prototype.__defineSetter__()-
Связывает функцию со свойством, которое при установке выполняет ту функцию, которая изменяет свойство.
Object.prototype.__lookupGetter__()-
Возвращает функцию, привязанную в качестве средства получения к указанному свойству.
Object.prototype.__lookupSetter__()-
Возвращает функцию, привязанную в качестве установщика к указанному свойству.
Object.prototype.hasOwnProperty()-
Возвращает логическое значение, указывающее, содержит ли объект указанное свойство как прямое свойство этого объекта, а не унаследованное через цепочку прототипов.
Object.prototype.isPrototypeOf()-
Возвращает логическое значение, указывающее, входит ли объект, у которого вызван метод, в цепочку прототипов другого объекта.
Object.prototype.propertyIsEnumerable()-
Возвращает логическое значение, указывающее, является ли указанное свойство свойством объекта enumerable own.
Object.prototype.toLocaleString()-
Вызывает
toString(). Object.prototype.toString()-
Возвращает строковое представление объекта.
Object.prototype.valueOf()-
Возвращает примитивное значение указанного объекта.
Примеры
>Пример: использование Object с типами undefined и null
Следующие примеры сохраняют пустой объект Object в переменную o:
const o = new Object();
const o = new Object(undefined);
const o = new Object(null);
Пример: использование Object для создания объектов Boolean
Следующий пример сохраняет объекты Boolean в переменную o:
// эквивалентно o = new Boolean(true);
const o = new Object(true);
// эквивалентно o = new Boolean(false);
const o = new Object(Boolean());
Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object-objects> |
Совместимость с браузерами
Loading…