布爾對象

2018-06-16 15:46 更新

作為函數(shù)調(diào)用布爾構(gòu)造器

 當把 Boolean 作為函數(shù)來調(diào)用,而不是作為構(gòu)造器,它執(zhí)行一個類型轉(zhuǎn)換。

Boolean (value)

 返回由 ToBoolean(value) 計算出的布爾值(非布爾對象)。

布爾構(gòu)造器

 當 Boolean 作為 new 表達式的一部分來調(diào)用,那么它是一個構(gòu)造器:它初始化新創(chuàng)建的對象。

new Boolean (value)

 新構(gòu)造對象的 [[Prototype]] 內(nèi)部屬性設(shè)定為原始布爾原型對象,它是 Boolean.prototype (15.6.3.1) 的初始值。

 新構(gòu)造對象的 [[Class]] 內(nèi)部屬性設(shè)定為 "Boolean"。

 新構(gòu)造對象的 [[PrimitiveValue]] 內(nèi)部屬性設(shè)定為 ToBoolean(value)。

 新構(gòu)造對象的 [[Extensible]] 內(nèi)部屬性設(shè)定為 true。

布爾構(gòu)造器的屬性

 布爾構(gòu)造器的 [[Prototype]] 內(nèi)部屬性的值是函數(shù)原型對象 (15.3.4)。

 除了內(nèi)部屬性和 length 屬性(值為 1)外,布爾構(gòu)造器還有以下屬性:

Boolean.prototype

 Boolean.prototype 的初始值是布爾原型對象 (15.6.4)。

 這個屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。

布爾原型對象的屬性

 布爾原型對象自身是一個值為 false 的布爾對象(它的 [[Class]] 是 "Boolean")。

 布爾原型對象的 [[Prototype]] 內(nèi)部屬性值是標準內(nèi)置的對象原型對象(15.2.4)。

Boolean.prototype.constructor

 Boolean.prototype.constructor 的初始值是內(nèi)置的 Boolean 構(gòu)造器。

Boolean.prototype.toString ( )

 采用以下步驟:

  1. 令 B 為 this 值 .
  2. 如果 Type(B) 是 Boolean, 則令 b 為 B.
  3. 否則如果 Type(B) 是 Object 且 B 的 [[Class]] 內(nèi)部屬性值是 "Boolean", 則令 b 為 B 的 [[PrimitiveValue]] 內(nèi)部屬性值。
  4. 否則拋出一個 TypeError 異常 .
  5. 如果 b 是 true, 則返回 "true"; 否則返回 "false".

Boolean.prototype.valueOf ( )

 采用以下步驟:

  1. 令 B 為 this 值 .
  2. 如果 Type(B) 是 Boolean, 則令 b 為 B.
  3. 否則如果 Type(B) 是 Object 且 B 的 [[Class]] 內(nèi)部屬性值是 "Boolean", 則令 b 為 B 的 [[PrimitiveValue]] 內(nèi)部屬性值。
  4. 否則拋出一個 TypeError 異常 .
  5. 返回 b.

布爾實例的屬性

 布爾實例從布爾原型對象繼承屬性,且布爾實例的 [[Class]] 內(nèi)部屬性值是 "Boolean"。布爾實例還有一個 [[PrimitiveValue]] 內(nèi)部屬性。

 [[PrimitiveValue]] 內(nèi)部屬性是代表這個布爾對象的布爾值。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號