布尔对象
作为函数调用布尔构造器
当把 Boolean 作为函数来调用,而不是作为构造器,它执行一个类型转换。
Boolean (value)
返回由 ToBoolean(value) 计算出的布尔值(非布尔对象)。
布尔构造器
当 Boolean 作为 new 表达式的一部分来调用,那么它是一个构造器:它初始化新创建的对象。
new Boolean (value)
新构造对象的 [[Prototype]] 内部属性设定为原始布尔原型对象,它是 Boolean.prototype (15.6.3.1) 的初始值。
新构造对象的 [[Class]] 内部属性设定为 "Boolean"。
新构造对象的 [[PrimitiveValue]] 内部属性设定为 ToBoolean(value)。
新构造对象的 [[Extensible]] 内部属性设定为 true。
布尔构造器的属性
布尔构造器的 [[Prototype]] 内部属性的值是函数原型对象 (15.3.4)。
除了内部属性和 length 属性(值为 1)外,布尔构造器还有以下属性:
Boolean.prototype
Boolean.prototype 的初始值是布尔原型对象 (15.6.4)。
这个属性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
布尔原型对象的属性
布尔原型对象自身是一个值为 false 的布尔对象(它的 [[Class]] 是 "Boolean")。
布尔原型对象的 [[Prototype]] 内部属性值是标准内置的对象原型对象(15.2.4)。
Boolean.prototype.constructor
Boolean.prototype.constructor 的初始值是内置的 Boolean 构造器。
Boolean.prototype.toString ( )
采用以下步骤:
- 令 B 为 this 值 .
- 如果 Type(B) 是 Boolean, 则令 b 为 B.
- 否则如果 Type(B) 是 Object 且 B 的 [[Class]] 内部属性值是 "Boolean", 则令 b 为 B 的 [[PrimitiveValue]] 内部属性值。
- 否则抛出一个 TypeError 异常 .
- 如果 b 是 true, 则返回 "true"; 否则返回 "false".
Boolean.prototype.valueOf ( )
采用以下步骤:
- 令 B 为 this 值 .
- 如果 Type(B) 是 Boolean, 则令 b 为 B.
- 否则如果 Type(B) 是 Object 且 B 的 [[Class]] 内部属性值是 "Boolean", 则令 b 为 B 的 [[PrimitiveValue]] 内部属性值。
- 否则抛出一个 TypeError 异常 .
- 返回 b.
布尔实例的属性
布尔实例从布尔原型对象继承属性,且布尔实例的 [[Class]] 内部属性值是 "Boolean"。布尔实例还有一个 [[PrimitiveValue]] 内部属性。
[[PrimitiveValue]] 内部属性是代表这个布尔对象的布尔值。
更多建议: