20.3.1 Конструктор Boolean
Конструктор Boolean:
- это %Boolean%.
- это начальное значение свойства «Boolean» глобального объекта.
- создаёт и инициализирует новый Логический объект (Boolean) при вызове в качестве конструктора.
- выполняет преобразование типа при вызове функции, а не конструктора.
- может использоваться как значение предложения
extends
определения класса. Конструкторы подкласса, которые намереваются наследовать указанное Логическое поведение (Boolean), должны включать вызовsuper
логического конструктора для создания и инициализации экземпляра подкласса с внутренним слотом [[BooleanData]].
20.3.1.1 Boolean ( value )
Когда Boolean вызывается с аргументом value, выполняются следующие шаги:
1. Пусть b будет ! ToBoolean(value). 2. Если NewTarget является undefined (не определен), вернуть b. 3. Пусть О будет ? OrdinaryCreateFromConstructor(NewTarget, "%Boolean.prototype%", «[[BooleanData]]»). 4. Установите для O.[[BooleanData]] значение b. 5. Вернуть O.
20.3.2 Свойства логического конструктора
Логический конструктор Boolean:
- имеет внутренний слот [[Prototype]], значение которого — %Function.prototype%.
- обладает следующими свойствами:
20.3.2.1 Boolean.prototype
Начальным значением Boolean.prototype является объект-прототип Boolean.
Это свойство имеет атрибуты {[[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false}.
20.3.3 Свойства объекта-прототипа Логического типа (Boolean)
Логический объект-прототип (Boolean prototype object):
- это %Boolean.prototype%.
- это обычный объект.
- сам является Логическим объектом; у него есть внутренний слот [[BooleanData]] со значением false.
- имеет внутренний слот [[Prototype]], значение которого %Object.prototype%.
Абстрактная операция thisBooleanValue принимает аргумент value. При вызове она выполняет следующие шаги:
1. Если Тип(value) является Логическим (Boolean), вернуть value. 2. Если Тип(value) является Объектом (Object), а значение имеет внутренний слот [[BooleanData]], тогда а. Пусть b будет значением. [[BooleanData]]. b. Утверждено: Тип(b) является Логическим (Boolean). c. Вернуть b. 3. Вызвать исключение TypeError.
20.3.3.1 Boolean.prototype.constructor
Начальное значение Boolean.prototype.constructor — это %Boolean%.
20.3.3.2 Boolean.prototype.toString ( )
Выполняются следующие шаги:
1. Пусть b будет ? thisBooleanValue(значение this). 2. Если b является true (истинно), вернуть строковое "true"; иначе верните строковое "false".
20.3.3.3 Boolean.prototype.valueOf ( )
Выполняются следующие шаги:
1. Вернуть ? thisBooleanValue(значение this).
20.3.4 Свойства Логических экземпляров
Логические экземпляры Boolean — это обычные объекты, которые наследуют свойства от объекта-прототипа Boolean. У Логических экземпляров есть внутренний слот [[BooleanData]]. Внутренний слот [[BooleanData]] — это логическое значение, представленное этим логическим объектом.
Информационные ссылки
Стандарт ECMAScript — Раздел «20.3 Boolean Objects» — https://tc39.es/ecma262/#sec-boolean-objects