国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

對象

2018-06-16 12:58 更新

ECMAScript 不使用諸如 C++,Smalltalk,Java 中的類。相反,對象可以通過各種方式創(chuàng)建,包括字面符號,或通過 構(gòu)造器 創(chuàng)建對象然后運行代碼初始化其全部或部分屬性值,為這些屬性分配初始值。每個構(gòu)造器是一個擁有名為“prototype”的屬性的函數(shù)。此屬性用于實現(xiàn) 基于原型的繼承 和 共享屬性 。構(gòu)造器通過 new 表達式創(chuàng)建對象:例如,new Date(2009,11) 創(chuàng)建一個新 Date 對象。不使用 new 調(diào)用一個構(gòu)造器的結(jié)果,依賴構(gòu)造器本身。例如,Date() 產(chǎn)生一個表示當前日期時間的字符串,而不是一個對象。


每個由構(gòu)造器創(chuàng)建的對象,都有一個隱式引用 ( 叫做對象的原型 ) 鏈接到構(gòu)造器的“prototype”屬性值。再者,原型可能有一個非空 (non-null) 隱式引用鏈接到它自己的原型,以此類推,這叫做 原型鏈 。當向?qū)ο蟮囊粋€屬性提出引用,引用會指向原型鏈中包含此屬性名的第一個對象的此屬性。換句話說,首先檢查直接提及的對象的同名屬性,如果對象包含同名的屬性,引用即指向此屬性,如果該對象不包含同名的屬性,則下一步檢查對象的原型;以此類推。

對象/原型關(guān)系


一般情況下基于類的面向?qū)ο笳Z言的實例擁有狀態(tài),類擁有方法,并且只能繼承結(jié)構(gòu)和行為。在 ECMAScript 中,對象擁有狀態(tài)和方法,并且結(jié)構(gòu),行為,狀態(tài)全都可繼承。


不直接包含原型中包含的特定屬性的所有對象會共享此屬性及屬性值。圖 1 說明了這一點:


CF 是一個構(gòu)造器(也是一個對象)。五個對象已用 new 表達式創(chuàng)建 : cf1, cf2, cf3, cf4, cf5。每個對象都有名為 q1 和 q2 的屬性。虛線表示隱式原型關(guān)系;例如:cf3 的原型是 CFp。構(gòu)造器 CF 自己有名為 P1 和 P2 的兩個屬性 , 這對 CFp, cf1, cf2, cf3, cf4, cf5 是不可見的。CFp 的名為 CFP1 的屬性共享給 cf1, cf2, cf3, cf4, cf5 ( 沒有 CF), 以及在 CFp 的隱式原型鏈中找不到任何名為 q1, q2, 或 CFP1 的屬性。 請注意 ,CF 和 CFp 之間沒有隱式原型鏈接。


不同于基于類的對象語言,屬性可以通過賦值的方式動態(tài)添加給對象。也就是說,構(gòu)造器并不是非要對構(gòu)造的對象的全部或任何屬性命名或賦值。上圖中,可以給 CFp 添加新屬性值的方式為 cf1, cf2, cf3, cf4,cf5 添加一個新的共享屬性。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號