Объект (Object) логически представляет собой набор свойств. Каждое свойство является либо «свойством данных» (data property), либо «свойством доступа» (accessor property):
- Свойство данных (data property) связывает значение ключа со значением языка ECMAScript и набором логических атрибутов Boolean.
- Свойство доступа (accessor property) связывает значение ключа с одной или двумя функциями средства доступа и набором логических атрибутов Boolean. Функции доступа используются для хранения или получения значения языка ECMAScript, связанного со свойством.
Свойства идентифицируются с помощью «значений ключей» (key values). «Значение ключа» (key value) свойства — это либо Строковое значение ECMAScript (String), либо значение Знака (Symbol). Все значения String и Symbol, включая пустую String, действительны как ключи свойств. «Имя свойства» (property name) — это ключ свойства, который является значением String.
Целочисленный индекс (integer index) — это ключ свойства со значением String, который является канонической числовой String (см. 7.1.21) и числовое значение которого равно +0𝔽 или положительное целое Number ≤ 𝔽 (253-1). Индекс массива (array index) — это целочисленный индекс, числовое значение i которого находится в диапазоне +0𝔽 ≤ i < 𝔽 (232-1).
Ключи свойств (Property keys) используются для доступа к свойствам и их значениям. Существует два вида доступа к свойствам: получение (get) и установка (set), соответствующие извлечению и присвоению значения соответственно. Свойства, доступные через доступ на получение и установку, включают как «собственные свойства» (own properties), которые являются непосредственной частью объекта, так и «унаследованные свойства» (inherited properties), которые предоставляются другим связанным объектом через отношения наследования свойств. Унаследованные свойства могут быть собственными или унаследованными свойствами связанного объекта. Каждое собственное свойство объекта должно иметь значение ключа (key value), отличное от значений ключей других собственных свойств этого объекта.
Все объекты логически являются наборами свойств, но существует несколько форм объектов, которые различаются своей семантикой для доступа к своим свойствам и управления ими. См. 6.1.7.2 для определения множественных форм объектов.
6.1.7.1 Атрибуты свойства
Атрибуты (Attributes) используются в этой спецификации для определения и объяснения состояния свойств объекта Object. Свойство данных (data property) связывает значение ключа с атрибутами, перечисленными в Таблице 3.
Имя атрибута | Область значений | Описание |
---|---|---|
[[Value]] | Любой тип из языка ECMAScript | Значение, полученное при доступе к свойству. |
[[Writable]] | Boolean | Если false, попытки кода ECMAScript изменить атрибут свойства [[Value]] с помощью [[Set]] не увенчаются успехом. |
[[Enumerable]] | Boolean | Если true, свойство будет нумероваться путем перечисления для входа (см. 14.7.5). В противном случае свойство называется неперечислимым (non-enumerable). |
[[Configurable]] | Boolean | Если false, попытки удалить свойство, изменить свойство на свойство доступа или изменить его атрибуты (кроме [[Value]] или изменение [[Writable]] на false) завершатся ошибкой. |
Таблица 3: Атрибуты свойства данных — Table 3: Attributes of a Data Property
Свойство средства доступа (accessor property) связывает значение ключа с атрибутами, перечисленными в Таблице 4.
Имя атрибута | Область значений | Описание |
---|---|---|
[[Get]] | Object | Undefined | Если значение является объектом, это должен быть объект функции. Внутренний метод функции [[Call]] (Таблица 7) вызывается с пустым списком аргументов для получения значения свойства каждый раз, когда выполняется доступ к свойству. |
[[Set]] | Object | Undefined | Если значение является объектом, это должен быть объект функции. Внутренний метод функции [[Call]] (Таблица 7) вызывается со списком аргументов, содержащим назначенное значение в качестве единственного аргумента каждый раз, когда выполняется набор доступа к свойству. Эффект внутреннего метода свойства [[Set]] может, но не обязательно, влиять на значение, возвращаемое последующими вызовами внутреннего метода свойства [[Get]]. |
[[Enumerable]] | Boolean | Если true, свойство должно быть пронумеровано путем перечисления для входа (см. 14.7.5). В противном случае свойство называется неперечислимым. |
[[Configurable]] | Boolean | Если false, попытки удалить свойство, изменить свойство на свойство данных или изменить его атрибуты завершатся ошибкой. |
Таблица 4: Атрибуты свойства доступа — Table 4: Attributes of an Accessor Property
Если начальные значения атрибутов свойства явно не указаны в этой спецификации, используется значение по умолчанию, определенное в таблице 5.
Имя атрибута | Значение по умолчанию |
---|---|
[[Value]] | undefined |
[[Get]] | undefined |
[[Set]] | undefined |
[[Writable]] | false |
[[Enumerable]] | false |
[[Configurable]] | false |
Таблица 5: Значения атрибутов по умолчанию — Table 5: Default Attribute Values
6.1.7.2 Внутренние методы и внутренние слоты объекта Object
Фактическая семантика объектов в ECMAScript определяется с помощью алгоритмов, называемых «внутренними методами» (internal methods). Каждый объект в механизме ECMAScript связан с набором внутренних методов, которые определяют его поведение во время выполнения. Эти внутренние методы не являются частью языка ECMAScript. Они определены данной спецификацией исключительно в ознакомительных целях. Однако каждый объект в реализации ECMAScript должен вести себя так, как указано внутренними методами, связанными с ним. Точный способ, которым это достигается, определяется реализацией.
Имена внутренних методов полиморфны. Это означает, что разные значения объектов могут выполнять разные алгоритмы, когда для них вызывается общее имя внутреннего метода. Фактический объект, для которого вызывается внутренний метод, является «целью» вызова. Если во время выполнения реализация алгоритма пытается использовать внутренний метод объекта, который этот объект не поддерживает, возникает исключение TypeError.
«Внутренние слоты» (internal slots) соответствуют внутреннему состоянию, которое связано с объектами и используется различными алгоритмами спецификации ECMAScript. Внутренние слоты не являются свойствами объекта и не наследуются. В зависимости от конкретной спецификации внутреннего слота такое состояние может состоять из значений любых языковых типов ECMAScript или определенных значений типа спецификации ECMAScript. Если явно не указано иное, внутренние слоты выделяются как часть процесса создания объекта и не могут быть динамически добавлены к объекту. Если не указано иное, начальным значением внутреннего слота является значение undefined. Различные алгоритмы в этой спецификации создают объекты, у которых есть внутренние слоты. Однако язык ECMAScript не предоставляет прямого способа связать внутренние слоты с объектом.
Внутренние методы и внутренние слоты идентифицируются в этой спецификации с использованием имен, заключенных в двойные квадратные скобки [[]].
В таблице 6 приведены «основные внутренние методы» (essential internal methods), используемые в этой спецификации, которые применимы ко всем объектам, созданным или управляемым кодом ECMAScript. У каждого объекта должны быть алгоритмы для всех основных внутренних методов. Однако не все объекты используют одни и те же алгоритмы для этих методов.
Обычный объект (ordinary object) — это объект, который удовлетворяет всем следующим критериям:
- Для внутренних методов, перечисленных в Таблице 6, объект использует методы, определенные в 10.1.
- Если у объекта есть внутренний метод [[Call]], он использует метод, определенный в 10.2.1.
- Если у объекта есть внутренний метод [[Construct]], он использует метод, определенный в 10.2.2.
Экзотический объект (exotic object) — это объект, который не является обычным объектом.
Эта спецификация распознает различные виды экзотических объектов с помощью внутренних методов этих объектов. Объект, который поведенчески эквивалентен определенному типу экзотического объекта (например, экзотическому объекту Array или экзотическому объекту связанной функции), но не имеет той же коллекции внутренних методов, указанной для этого типа, не распознается как такой вид экзотический объект.
Столбец «Подпись» (Signature) в Таблице 6 и других аналогичных таблицах описывает шаблон вызова для каждого внутреннего метода. Шаблон вызова всегда включает в себя заключенный в скобки список описательных имен параметров. Если имя параметра совпадает с именем типа ECMAScript, тогда имя описывает требуемый тип значения параметра. Если внутренний метод явно возвращает значение, за его списком параметров следует символ «→» и имя типа возвращаемого значения. Имена типов, используемые в «подписях» (сигнатурах), относятся к типам, определенным в разделе 6, дополненным следующими дополнительными именами. «Любой» (any) означает, что значением может быть любой тип языка ECMAScript.
В дополнение к своим параметрам внутренний метод всегда имеет доступ к объекту, который является целью вызова метода.
Внутренний метод неявно возвращает Запись о Завершении (Completion Record), либо обычное завершение, которое содержит значение типа возвращаемого значения, показанного в его шаблоне вызова, либо завершение выброса.
Внутренний метод (Internal Method) | Подпись (Signature) | Описание | |
---|---|---|---|
[[GetPrototypeOf]] | ( ) → Object | Null | Определите объект, который предоставляет унаследованные свойства для этого объекта. Значение null указывает на отсутствие унаследованных свойств. | |
[[SetPrototypeOf]] | (Object | Null) → Boolean | Свяжите этот объект с другим объектом, который предоставляет унаследованные свойства. Передача null указывает на отсутствие унаследованных свойств. Возвращает истину (true), указывающую, что операция была завершена успешно, или ложь (false), указывающую, что операция не была успешной. | |
[[IsExtensible]] | ( ) → Boolean | Определите, разрешено ли добавлять к этому объекту дополнительные свойства. | |
[[PreventExtensions]] | ( ) → Boolean | Укажите, можно ли добавлять к этому объекту новые свойства. Возвращает true, если операция прошла успешно, или false, если операция не удалась. | |
[[GetOwnProperty]] |
|
Вернуть «дескриптор свойства» (Property Descriptor) для собственного свойства этого объекта, ключ которого — propertyKey, или undefined, если такого свойства не существует. | |
[[DefineOwnProperty]] | (propertyKey, PropertyDescriptor) → Boolean | Создайте или измените собственное свойство, ключ которого — propertyKey, чтобы его состояние описывалось PropertyDescriptor. Верните true, если это свойство было успешно создано / обновлено, или false, если свойство не может быть создано или обновлено. | |
[[HasProperty]] | (propertyKey) → Boolean | Верните логическое значение, указывающее, есть ли у этого объекта собственное или унаследованное свойство, ключ которого — propertyKey. | |
[[Get]] | (propertyKey, Receiver) → any | Вернуть значение свойства, ключ которого — propertyKey из этого объекта. Если какой-либо код ECMAScript должен быть выполнен для получения значения свойства, Receiver используется как значение this при оценке кода. | |
[[Set]] | (propertyKey, value, Receiver) → Boolean | Задайте для свойства, ключ которого — propertyKey, значение value. Если какой-либо код ECMAScript должен быть выполнен для установки значения свойства, Receiver используется как значение this при оценке кода. Возвращает истину (true), если значение свойства было установлено, или ложь (false), если установить его не удалось. | |
[[Delete]] | (propertyKey) → Boolean | Удалите собственное свойство, ключ которого — propertyKey, из этого объекта. Верните false, если свойство не было удалено и все еще присутствует. Верните true, если свойство было удалено или отсутствует. | |
[[OwnPropertyKeys]] | ( ) → List of propertyKey | Вернуть Список, все элементы которого являются собственными ключами свойств объекта. |
Таблица 6: Основные внутренние методы — Table 6: Essential Internal Methods
В таблице 7 приведены дополнительные важные внутренние методы, которые поддерживаются объектами, которые могут вызываться как функции. Функциональный объект (function object) — это объект, который поддерживает внутренний метод [[Call]]. Конструктор (constructor) — это объект, который поддерживает внутренний метод [[Construct]]. Каждый объект, поддерживающий [[Construct]], должен поддерживать [[Call]]; то есть каждый конструктор должен быть функциональным объектом.
Следовательно, конструктор также может называться:
Internal Method | Signature | Description |
---|---|---|
[[Call]] | (any, Список из any) → any | Выполняет код, связанный с этим объектом. Вызывается через выражение вызова функции. Аргументами внутреннего метода являются значение this и Список, элементы которого являются аргументами, переданными функции выражением вызова. Объекты, реализующие этот внутренний метод, являются вызываемыми (callable). |
[[Construct]] | (Список из any, Object) → Object | Создает объект. Вызывается через оператор new (новый) или вызов super (супер).
Первым аргументом внутреннего метода является Список, элементы которого являются аргументами вызова конструктора или вызова super. Второй аргумент — это объект, к которому изначально был применен оператор new. Объекты, реализующие этот внутренний метод, называются конструкторами (constructors). Функциональный объект не обязательно является конструктором, и такие функциональные объекты, не являющиеся конструктором, не имеют внутреннего метода [[Construct]]. |
Таблица 7: Дополнительные важные внутренние методы функциональных объектов — Table 7: Additional Essential Internal Methods of Function Objects
Семантика основных внутренних методов для обычных объектов и стандартных экзотических объектов указана в разделе 10. Если какое-либо указанное использование внутреннего метода экзотического объекта не поддерживается реализацией, это использование должно вызывать исключение TypeError при попытке.
6.1.7.3 Инварианты основных внутренних методов
Внутренние методы объектов механизма ECMAScript должны соответствовать списку инвариантов, указанному ниже. Обычные объекты ECMAScript, а также все стандартные экзотические объекты в этой спецификации поддерживают эти инварианты. Объекты ECMAScript Proxy поддерживают эти инварианты посредством проверок во время выполнения результатов ловушек, вызванных для объекта [[ProxyHandler]].
Любая реализация, предоставляющая экзотические объекты, также должна поддерживать эти инварианты для этих объектов. Нарушение этих инвариантов может привести к непредсказуемому поведению кода ECMAScript и возникновению проблем с безопасностью. Однако нарушение этих инвариантов никогда не должно ставить под угрозу безопасность памяти реализации.
Реализация не должна позволять обходить эти инварианты каким-либо образом, например, путем предоставления альтернативных интерфейсов, которые реализуют функциональность основных внутренних методов, не применяя их инварианты.
Определения:
- Целью target внутреннего метода является объект, для которого вызывается внутренний метод.
- Цель не является расширяемой non-extensible, если было замечено, что она возвращает false из внутреннего метода [[IsExtensible]] или true из внутреннего метода [[PreventExtensions]].
- Несуществующее свойство non-existent — это свойство, которое не существует как собственное свойство на нерасширяемой цели.
- Все ссылки на SameValue соответствуют определению алгоритма SameValue.
Возвращаемое значение:
Значение, возвращаемое любым внутренним методом, должно быть записью завершения с одним из следующих вариантов:
- [[Type]] = normal, [[Target]] = empty, и [[Value]] = значение «нормального возвращаемого типа», показанное ниже для этого внутреннего метода, или
- [[Type]] = throw, [[Target]] = empty, и [[Value]] = любое значение языка ECMAScript.
Внутренний метод не должен возвращать завершение с [[Type]] = continue, break или return.
[[GetPrototypeOf]] ( )
[[SetPrototypeOf]] ( V )
[[IsExtensible]] ( )
[[PreventExtensions]] ( )
[[GetOwnProperty]] ( P )
[[DefineOwnProperty]] ( P, Desc )
[[HasProperty]] ( P )
[[Get]] ( P, Receiver )
[[Set]] ( P, V, Receiver )
[[Delete]] ( P )
[[OwnPropertyKeys]] ( )
[[Call]] ( )
[[Construct]] ( )
[[GetPrototypeOf]] ( )
- Обычный тип возвращаемого значения — Object или Null.
- Если цель не является расширяемой и [[GetPrototypeOf]] возвращает значение V, то любые будущие вызовы [[GetPrototypeOf]] должны возвращать SameValue как V.
Цепочка прототипов объекта должна иметь конечную длину (то есть, начиная с любого объекта, рекурсивное применение внутреннего метода [[GetPrototypeOf]] к его результату должно в конечном итоге привести к значению null). Однако это требование не может быть исполнено как инвариант уровня объекта, если цепочка прототипов включает любые экзотические объекты, которые не используют определение обычного объекта [[GetPrototypeOf]]. Такая круговая цепочка прототипов может привести к бесконечным циклам при доступе к свойствам объекта.
[[SetPrototypeOf]] ( V )
- Обычный тип возвращаемого значения — логический (Boolean).
- Если цель не расширяема, [[SetPrototypeOf]] должен возвращать false, если только V не является SameValue в качестве наблюдаемого [[GetPrototypeOf]] значения цели.
[[IsExtensible]] ( )
- Обычный тип возвращаемого значения — логический (Boolean)
- Если [[IsExtensible]] возвращает false, все будущие вызовы [[IsExtensible]] на целевом объекте должны возвращать false.
[[PreventExtensions]] ( )
- Обычный тип возвращаемого значения — логический (Boolean).
- Если [[PreventExtensions]] возвращает true, все будущие вызовы [[IsExtensible]] на цели должны возвращать false, и цель теперь считается нерасширяемой.
[[GetOwnProperty]] ( P )
- Обычный тип возвращаемого значения — либо Дескриптор Свойства (Property Descriptor), либо Неопределенный (Undefined).
- Если Тип возвращаемого значения — Дескриптор Свойства, возвращаемое значение должно быть полностью заполненным дескриптором свойства.
- Если P описывается как ненастраиваемое(non-configurable), без возможности записи (non-writable) собственных данных свойства, все будущие вызовы [[GetOwnProperty]] (P) должны возвращать дескриптор свойства, у которого [[Value]] такое же значение, как у атрибута P [[Value]].
- Если атрибуты P, отличные от [[Writable]], могут изменяться со временем или если свойство может быть удалено, тогда атрибут P [[Configurable]] должен быть истинным true.
- Если атрибут [[Writable]] может измениться с false на true, тогда атрибут [[Configurable]] должен иметь значение true.
- Если цель не является расширяемой и P не существует, тогда все будущие вызовы [[GetOwnProperty]] (P) на цели должны описывать P как несуществующий (то есть [[GetOwnProperty]] (P) должен возвращать undefined ).
Как следствие третьего инварианта, если свойство описывается как свойство данных и может возвращать разные значения с течением времени, тогда один или оба атрибута [[Writable]] и [[Configurable]] должны быть истинными, даже если нет механизма изменения значения предоставляется через другие важные внутренние методы.
[[DefineOwnProperty]] ( P, Desc )
Обычный тип возвращаемого значения — логический (Boolean).
[[DefineOwnProperty]] должен возвращать false, если P ранее наблюдалось как не настраиваемое собственное свойство цели, кроме случаев:
- P — это свойство данных с возможностью записи. Ненастраиваемое свойство данных с возможностью записи может быть изменено на ненастраиваемое свойство данных с возможностью записи.
- Все атрибуты Desc имеют то же значение, что и атрибуты P.
[[DefineOwnProperty]] (P, Desc) должно возвращать false, если цель не является расширяемой, а P — несуществующее собственное свойство. То есть нерасширяемый целевой объект не может быть расширен новыми свойствами.
[[HasProperty]] ( P )
- Обычный тип возвращаемого значения — логический (Boolean).
- Если P ранее наблюдалось как ненастраиваемые собственные данные или свойство доступа цели, [[HasProperty]] должен возвращать истину true.
[[Get]] ( P, Receiver )
- Нормальный тип возвращаемого значения — любой тип языка ECMAScript.
- Если P ранее наблюдался как ненастраиваемое, не записываемое собственных свойство данных цели со значением V, то [[Get]] должен возвращать SameValue как V.
- Если P ранее наблюдался как ненастраиваемое собственное свойство доступа цели, атрибут [[Get]] которого не определен undefined, операция [[Get]] должна возвращать undefined.
[[Set]] ( P, V, Receiver )
- Обычный тип возвращаемого значения — логический (Boolean).
- Если P ранее наблюдалось как ненастраиваемое собственное свойство данных без возможности записи для целевого объекта, то [[Set]] должен возвращать false, если V не является SameValue, что и атрибут P [[Value]].
- Если P ранее наблюдался как ненастраиваемое собственное свойство доступа цели, атрибут [[Set]] которого не определен, операция [[Set]] должна возвращать false.
[[Delete]] ( P )
- Обычный тип возвращаемого значения — логический (Boolean).
- Если P ранее наблюдалось как ненастраиваемые собственные данные или свойство доступа цели, [[Delete]] должно возвращать false.
[[OwnPropertyKeys]] ( )
- Обычный тип возвращаемого значения — Список.
- Возвращенный Список не должен содержать повторяющихся записей.
- Тип каждого элемента возвращаемого Список — либо String, либо Symbol.
- Возвращенный список должен содержать по крайней мере ключи всех не настраиваемых собственных свойств, которые ранее наблюдались.
- Если цель не является расширяемой, возвращаемый Список должен содержать только ключи всех собственных свойств цели, которые можно наблюдать с помощью [[GetOwnProperty]].
[[Call]] ( )
- Нормальный тип возвращаемого значения — любой тип языка ECMAScript.
[[Construct]] ( )
- Обычный тип возвращаемого значения — Object.
- У цели также должен быть внутренний метод [[Call]].
6.1.7.4 Хорошо известные внутренние объекты
Хорошо известные внутренние сущности — это встроенные объекты, на которые явно ссылаются алгоритмы данной спецификации и которые обычно имеют индивидуальности, специфичные для области. Если не указано иное, каждый внутренний объект фактически соответствует набору подобных объектов, по одному на область.
В этой спецификации ссылка, такая как %name%, означает внутренний объект, связанный с текущей областью, соответствующий имени. Ссылка, такая как %name.a.b%, означает, как если бы к свойству «b» свойства «a» внутреннего объекта %name% был осуществлен доступ до оценки любого кода ECMAScript. Определение текущей области и ее внутренних свойств описано в 9.3. Хорошо известные внутренние функции перечислены в таблице 8.
Intrinsic Name (Имя внутренней сущности) | Global Name (Глобальное имя) | ECMAScript Language Association (Ассоциация языков ECMAScript) |
---|---|---|
%AggregateError% | AggregateError |
The AggregateError constructor (20.5.7.1) |
%Array% | Array |
The Array constructor (23.1.1) |
%ArrayBuffer% | ArrayBuffer |
The ArrayBuffer constructor (25.1.3) |
%ArrayIteratorPrototype% | The prototype of Array iterator objects (23.1.5) | |
%AsyncFromSyncIteratorPrototype% | The prototype of async-from-sync iterator objects (27.1.4) | |
%AsyncFunction% | The constructor of async function objects (27.7.1) | |
%AsyncGeneratorFunction% | The constructor of async iterator objects (27.4.1) | |
%AsyncIteratorPrototype% | An object that all standard built-in async iterator objects indirectly inherit from | |
%Atomics% | Atomics |
The Atomics object (25.4) |
%BigInt% | BigInt |
The BigInt constructor (21.2.1) |
%BigInt64Array% | BigInt64Array |
The BigInt64Array constructor (23.2) |
%BigUint64Array% | BigUint64Array |
The BigUint64Array constructor (23.2) |
%Boolean% | Boolean |
The Boolean constructor (20.3.1) |
%DataView% | DataView |
The DataView constructor (25.3.2) |
%Date% | Date |
The Date constructor (21.4.2) |
%decodeURI% | decodeURI |
The decodeURI function (19.2.6.2) |
%decodeURIComponent% | decodeURIComponent |
The decodeURIComponent function (19.2.6.3) |
%encodeURI% | encodeURI |
The encodeURI function (19.2.6.4) |
%encodeURIComponent% | encodeURIComponent |
The encodeURIComponent function (19.2.6.5) |
%Error% | Error |
The Error constructor (20.5.1) |
%eval% | eval |
The eval function (19.2.1) |
%EvalError% | EvalError |
The EvalError constructor (20.5.5.1) |
%FinalizationRegistry% | FinalizationRegistry |
The FinalizationRegistry constructor (26.2.1) |
%Float32Array% | Float32Array |
The Float32Array constructor (23.2) |
%Float64Array% | Float64Array |
The Float64Array constructor (23.2) |
%ForInIteratorPrototype% | The prototype of For-In iterator objects (14.7.5.10) | |
%Function% | Function |
The Function constructor (20.2.1) |
%GeneratorFunction% | The constructor of generator objects (27.3.1) | |
%Int8Array% | Int8Array |
The Int8Array constructor (23.2) |
%Int16Array% | Int16Array |
The Int16Array constructor (23.2) |
%Int32Array% | Int32Array |
The Int32Array constructor (23.2) |
%isFinite% | isFinite |
The isFinite function (19.2.2) |
%isNaN% | isNaN |
The isNaN function (19.2.3) |
%IteratorPrototype% | An object that all standard built-in iterator objects indirectly inherit from | |
%JSON% | JSON |
The JSON object (25.5) |
%Map% | Map |
The Map constructor (24.1.1) |
%MapIteratorPrototype% | The prototype of Map iterator objects (24.1.5) | |
%Math% | Math |
The Math object (21.3) |
%Number% | Number |
The Number constructor (21.1.1) |
%Object% | Object |
The Object constructor (20.1.1) |
%parseFloat% | parseFloat |
The parseFloat function (19.2.4) |
%parseInt% | parseInt |
The parseInt function (19.2.5) |
%Promise% | Promise |
The Promise constructor (27.2.3) |
%Proxy% | Proxy |
The Proxy constructor (28.2.1) |
%RangeError% | RangeError |
The RangeError constructor (20.5.5.2) |
%ReferenceError% | ReferenceError |
The ReferenceError constructor (20.5.5.3) |
%Reflect% | Reflect |
The Reflect object (28.1) |
%RegExp% | RegExp |
The RegExp constructor (22.2.3) |
%RegExpStringIteratorPrototype% | The prototype of RegExp String Iterator objects (22.2.7) | |
%Set% | Set |
The Set constructor (24.2.1) |
%SetIteratorPrototype% | The prototype of Set iterator objects (24.2.5) | |
%SharedArrayBuffer% | SharedArrayBuffer |
The SharedArrayBuffer constructor (25.2.2) |
%String% | String |
The String constructor (22.1.1) |
%StringIteratorPrototype% | The prototype of String iterator objects (22.1.5) | |
%Symbol% | Symbol |
The Symbol constructor (20.4.1) |
%SyntaxError% | SyntaxError |
The SyntaxError constructor (20.5.5.4) |
%ThrowTypeError% | A function object that unconditionally throws a new instance of %TypeError% | |
%TypedArray% | The super class of all typed Array constructors (23.2.1) | |
%TypeError% | TypeError |
The TypeError constructor (20.5.5.5) |
%Uint8Array% | Uint8Array |
The Uint8Array constructor (23.2) |
%Uint8ClampedArray% | Uint8ClampedArray |
The Uint8ClampedArray constructor (23.2) |
%Uint16Array% | Uint16Array |
The Uint16Array constructor (23.2) |
%Uint32Array% | Uint32Array |
The Uint32Array constructor (23.2) |
%URIError% | URIError |
The URIError constructor (20.5.5.6) |
%WeakMap% | WeakMap |
The WeakMap constructor (24.3.1) |
%WeakRef% | WeakRef |
The WeakRef constructor (26.1.1) |
%WeakSet% | WeakSet |
The WeakSet constructor (24.4.1) |
Таблица 8: Хорошо известные внутренние объекты — Table 8: Well-Known Intrinsic Objects
Дополнительные записи в Таблице 95.
Intrinsic Name | Global Name | ECMAScript Language Association |
---|---|---|
%escape% | escape |
The escape function (B.2.1.1) |
%unescape% | unescape |
The unescape function (B.2.1.2) |
Таблица 95: Дополнительные хорошо известные внутренние объекты — Table 95: Additional Well-known Intrinsic Objects
Информационные ссылки
Стандарт ECMAScript — Раздел «6.1.7 The Object Type» — https://tc39.es/ecma262/#sec-object-type