Спецификация ECMAScript 5.1 с аннотациями

Поделиться

15.6 Объекты Boolean #

15.6.1 Вызов конструктора Boolean как функции #

При вызове Boolean не в качестве конструктора, а в качестве функции, производится преобразование типов.

15.6.1.1 Boolean (value) #

Возвращает значение типа Boolean (а не объект Boolean), вычисляемое абстрактной операцией ToBoolean(value).

15.6.2 Конструктор Boolean #

Если Boolean вызывается как часть выражения new, он является конструктором, так как он инициализирует создаваемый объект.

15.6.2.1 new Boolean (value) #

Внутреннее свойство [[Prototype]] создаваемого объекта устанавливается равным исходному объекту-прототипу Boolean, который представляет собой начальное значение свойства Boolean.prototype (15.6.3.1).

Внутреннее свойство [[Class]] создаваемого объекта Boolean устанавливается равным "Boolean".

Внутреннее свойство [[PrimitiveValue]] создаваемого объекта Boolean устанавливается равным ToBoolean(value).

Внутреннее свойство [[Extensible]] создаваемого объекта устанавливается равным true.

15.6.3 Свойства конструктора Boolean #

Значением внутреннего свойства [[Prototype]] конструктора Boolean является объект-прототип Function (15.3.4).

Кроме внутренних свойств и свойства length со значением 1, конструктор Boolean имеет следующее свойство:

15.6.3.1 Boolean.prototype #

Начальным значением Boolean.prototype является объект-прототип Boolean (15.6.4).

Это свойство имеет атрибуты { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.

15.6.4 Свойства объекта-прототипа Boolean #

Объект-прототип Boolean представляет собой объект типа Boolean (его [[Class]] равен "Boolean"), значение которого равно false.

Значением внутреннего свойства [[Prototype]] объекта-прототипа Boolean является стандартный встроенный объект-прототип Object (15.2.4).

15.6.4.1 Boolean.prototype.constructor #

Начальным значением Boolean.prototype.constructor является встроенный конструктор Boolean.

15.6.4.2 Boolean.prototype.toString ( ) # ? ? ? ?

Выполняются следующие шаги:

  1. Пусть B будет значением this.

  2. Если Type(B) равно Boolean, то пусть b будет B.

  3. Иначе, если Type(B) равен Object, и значение внутреннего свойства [[Class]] для B равно "Boolean", то пусть b будет значением внутреннего свойства [[PrimitiveValue]] для B.

  4. Иначе сгенерировать исключение TypeError.

  5. Если b равно true, то вернуть "true"; иначе вернуть "false".

15.6.4.3 Boolean.prototype.valueOf ( ) # ? ? ? ?

Выполняются следующие шаги:

  1. Пусть B будет значением this.

  2. Если Type(B) равно Boolean, то пусть b будет B.

  3. Иначе, если Type(B) равен Object, и значение внутреннего свойства [[Class]] для B равно "Boolean", то пусть b будет значением внутреннего свойства [[PrimitiveValue]] для B.

  4. Иначе сгенерировать исключение TypeError.

  5. Вернуть b.

15.6.5 Свойства экземпляров Boolean #

Экземпляры Boolean наследуют свойства объекта-прототипа Boolean. Значение их внутреннего свойства [[Class]] равно "Boolean". Кроме того, экземпляры Boolean имеют внутреннее свойство [[PrimitiveValue]].

Внутреннее свойство [[PrimitiveValue]] представляет собой значение Boolean, представленное этим объектом Boolean.