При вызове Boolean
не в качестве конструктора, а в качестве функции, производится преобразование типов.
Возвращает значение типа Boolean (а не объект Boolean), вычисляемое абстрактной операцией ToBoolean(value).
Если Boolean
вызывается как часть выражения new
, он является конструктором, так как он инициализирует создаваемый объект.
Внутреннее свойство [[Prototype]] создаваемого объекта устанавливается равным исходному объекту-прототипу Boolean, который представляет собой начальное значение свойства Boolean.prototype
(15.6.3.1).
Внутреннее свойство [[Class]] создаваемого объекта Boolean устанавливается равным "Boolean"
.
Внутреннее свойство [[PrimitiveValue]] создаваемого объекта Boolean устанавливается равным ToBoolean(value).
Внутреннее свойство [[Extensible]] создаваемого объекта устанавливается равным true.
Значением внутреннего свойства [[Prototype]] конструктора Boolean является объект-прототип Function (15.3.4).
Кроме внутренних свойств и свойства length
со значением 1, конструктор Boolean имеет следующее свойство:
Начальным значением Boolean.prototype
является объект-прототип Boolean (15.6.4).
Это свойство имеет атрибуты { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
Объект-прототип Boolean представляет собой объект типа Boolean (его [[Class]] равен "Boolean"
), значение которого равно false.
Значением внутреннего свойства [[Prototype]] объекта-прототипа Boolean является стандартный встроенный объект-прототип Object (15.2.4).
Начальным значением Boolean.prototype.constructor
является встроенный конструктор Boolean
.
Выполняются следующие шаги:
Пусть B будет значением this.
Если Type(B) равно Boolean, то пусть b будет B.
Иначе, если Type(B) равен Object, и значение внутреннего свойства [[Class]] для B равно "Boolean"
, то пусть b будет значением внутреннего свойства [[PrimitiveValue]] для B.
Иначе сгенерировать исключение TypeError.
Если b равно true, то вернуть "true"
; иначе вернуть "false"
.
Выполняются следующие шаги:
Пусть B будет значением this.
Если Type(B) равно Boolean, то пусть b будет B.
Иначе, если Type(B) равен Object, и значение внутреннего свойства [[Class]] для B равно "Boolean"
, то пусть b будет значением внутреннего свойства [[PrimitiveValue]] для B.
Иначе сгенерировать исключение TypeError.
Вернуть b.
Экземпляры Boolean наследуют свойства объекта-прототипа Boolean. Значение их внутреннего свойства [[Class]] равно "Boolean"
. Кроме того, экземпляры Boolean имеют внутреннее свойство [[PrimitiveValue]].
Внутреннее свойство [[PrimitiveValue]] представляет собой значение Boolean, представленное этим объектом Boolean.