Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
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 и не может быть изменен.
Следует избегать прямого вызова методов Object.prototype из экземпляра, особенно тех, которые не предназначены для полиморфизма (то есть имеет смысл только их начальное поведение, и объект-наследник не может переопределить его осмысленным образом). Все объекты, являющиеся потомками Object.prototype, могут определять собственное свойство с тем же именем, но с совершенно иной семантикой. Кроме того, эти свойства не наследуются объектами с null-прототипом. Все современные утилиты JavaScript для работы с объектами являются статическими:
В случае, когда семантически эквивалентный статический метод не существует или действительно необходимо использовать метод из Object.prototype, следует вызвать метод call() для целевого объекта, чтобы предотвратить появление у объекта переопределённого свойства, которое может привести к неожиданным результатам.
Пары из имён (строки) и значений (любые значения), где имя отделяется от значения двоеточием.
valueЛюбое значение.
Имеет значение 1.
Object.prototypeПозволяет добавлять свойства ко всем объектам типа Object.
Создаёт новый объект путём копирования значений всех собственных перечислимых свойств из одного или более исходных объектов в целевой объект.
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]])
Все объекты в JavaScript являются потомками Object; все объекты наследуют методы и свойства из прототипа объекта Object.prototype, хотя они и могут быть переопределены. Например, прототипы других конструкторов переопределяют свойство constructor и предоставляют свои собственные методы toString(). Изменения в объекте прототипа Object распространяются на все объекты до тех пор, пока свойства и методы, учитывающие эти изменения, не переопределяются дальше по цепочке прототипов.
Превращает входные данные в объект.
Object.prototype.constructorУказывает функцию, которая создает прототип объекта.
Object.prototype.__proto__Указывает на объект, который использовался в качестве прототипа при создании экземпляра объекта.
Связывает функцию со свойством, которое при обращении к нему выполняет эту функцию и возвращает ее возвращаемое значение.
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 в переменную o:
Следующий пример сохраняет объекты Boolean в переменную o:
| ECMAScript® 2027 Language Specification # sec-object-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 27 янв. 2026 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.