標(biāo)準(zhǔn) ECMAScript 內(nèi)置對(duì)象

2018-06-16 15:26 更新

ECMAScript 代碼運(yùn)行時(shí)會(huì)有一些可用的內(nèi)置對(duì)象。一是作為執(zhí)行程序詞法環(huán)境的一部分的全局對(duì)象。其他的可通過全局對(duì)象的初始屬性訪問。

 除非另外指明,如果內(nèi)置對(duì)象擁有 [[Call]] 內(nèi)部屬性,那么它的 [[Class]] 內(nèi)部屬性是 "Function",如果沒有 [[Call]] 內(nèi)部屬性,那么它的 [[Class]] 內(nèi)部屬性是 "Object"。除非另外指明,內(nèi)置對(duì)象的 [[Extensible]] 內(nèi)部屬性的初始值是 true。

 許多內(nèi)置對(duì)象是函數(shù):它們可以通過參數(shù)調(diào)用。其中有些還作為構(gòu)造器:這些函數(shù)可被 new 運(yùn)算符調(diào)用。對(duì)于每個(gè)內(nèi)置函數(shù),本規(guī)范描述了這些函數(shù)的必須參數(shù)和 Function 對(duì)象的屬性。對(duì)于每個(gè)內(nèi)置構(gòu)造器,本規(guī)范還描述了這些構(gòu)造器的 prototype 對(duì)象的屬性,還描述了用 new 表達(dá)式調(diào)用這個(gè)構(gòu)造器后返回的具體實(shí)例對(duì)象的屬性。

 除非另外指明了某一特定函數(shù)的描述,如果在調(diào)用本章中描述的函數(shù)或構(gòu)造器時(shí)傳入的參數(shù)少于必須的參數(shù)個(gè)數(shù),那么這些函數(shù)或構(gòu)造器將表現(xiàn)為仿佛傳入了足夠的參數(shù),而那些缺少的參數(shù)會(huì)設(shè)定為 undefined 值。

 除非另外指明了某一特定函數(shù)的描述,如果在調(diào)用本章中描述的函數(shù)或構(gòu)造器時(shí)傳入了比函數(shù)指定允許的更多的參數(shù)時(shí),額外的參數(shù)會(huì)被函數(shù)忽略。然而,一個(gè)實(shí)現(xiàn)可以為這樣的參數(shù)列表定義依賴于實(shí)現(xiàn)的特別行為,只要這種行為在單純添加額外參數(shù)時(shí)不拋出 TypeError 異常。

 實(shí)現(xiàn)為了給內(nèi)置函數(shù)集合增添一些額外功能而添加新函數(shù)是被鼓勵(lì)的,而不是為現(xiàn)有函數(shù)增加新參數(shù)。

 每個(gè)內(nèi)置函數(shù)和每個(gè)內(nèi)置構(gòu)造器都有 Function 原型對(duì)象 ,F(xiàn)unction.prototype(15.3.4)表達(dá)式的初始值作為其 [[Prototype]] 內(nèi)部屬性的值。

 除非另外指明,每個(gè)內(nèi)置的原型對(duì)象都有 Object 原型對(duì)象 ,Object.prototype(15.2.4) 表達(dá)式的初始值作為其 [[Prototype]] 內(nèi)部屬性的值,除了 Object 的原型對(duì)象自身。

 除非另外指明了特定函數(shù)的描述,否則本章描述的內(nèi)置函數(shù)中不存在不是構(gòu)造器而要實(shí)現(xiàn) [[Construct]] 內(nèi)部方法的內(nèi)置函數(shù)。除非另外指明了特定函數(shù)的描述,否則本章描述的內(nèi)置函數(shù)都沒有 prototype 屬性。

 本章通常描述構(gòu)造器的“作為函數(shù)調(diào)用”和“用 new 表達(dá)式調(diào)用” 有不同行為。" 作為函數(shù)調(diào)用 " 的行為對(duì)應(yīng)于調(diào)用構(gòu)造器的 [[Call]] 內(nèi)部方法,“用 new 表達(dá)式調(diào)用”的行為對(duì)應(yīng)于調(diào)用構(gòu)造器的 [[Construct]] 內(nèi)部方法。

 本章描述的每個(gè)內(nèi)置 Function 對(duì)象 -- 不管是構(gòu)造器還是普通函數(shù),或二者都是 -- 擁有一個(gè) length 屬性,其值是個(gè)整數(shù)。除非另外指明,此值等于顯示在函數(shù)描述的子章節(jié)標(biāo)題的形式參數(shù)的個(gè)數(shù),包括可選參數(shù)。

 例如描述 String 的 prototype 對(duì)象的 slice 屬性初始值的函數(shù)對(duì)象的子章節(jié)標(biāo)題是“String.prototype.slice (start, end)”,這說明有兩個(gè)形參 start 和 end,所以這個(gè)函數(shù)對(duì)象的 length 屬性值是 2。

 任何情況下,本章描述的內(nèi)置函數(shù)對(duì)象的 length 屬性擁有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。除非另外指明,本章描述的所有其他屬性擁有特性 { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }。


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)