




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
為除了return,它還用到了一個(gè)稱為元屬性(metaproperty)迄今為止,new.target是JavaScript通過之前的課程,你應(yīng)該知道:JavaScript使用ECMAScript6JavaScript式風(fēng)格的構(gòu)造器中(以代碼newX為例),對(duì)象this實(shí)際上是由new運(yùn)算依據(jù)X.prototype來創(chuàng)建的。循此前例,ECMAScript6中的類,在創(chuàng)建this對(duì)象時(shí)也需要這但是,按照Ct6ts對(duì)象的行為與權(quán)力,將通過ue()被層層轉(zhuǎn)交,直到父類或祖先類中有能力創(chuàng)建該對(duì)象的那個(gè)構(gòu)造器或類。而在這時(shí),父類是不可能知道nwX運(yùn)算中的這個(gè)子類為何的,因?yàn)楦割愅ǔJ歉缦缺怀鰜淼?。既然它的代碼一早就被決定了,那么對(duì)子類透明也就是正常的了。于是真正的在這時(shí)候就出現(xiàn)了:父類并不知道子類X,卻又需要.rtye實(shí)例hs設(shè)置原型。CMAScriptnw.ret這個(gè)東西,它就指向上面的X,并且隨著se()調(diào)用一層層地向上傳遞,以便最終創(chuàng)建者類可以使用它。也就是說,以之前討論過的Detis:代代//在JavaScript內(nèi)置類Date()function_Date()this=Object.Create(Dtotype,{_internal_slotsObject.setPrototypeOf(this,66這也就是為什么()的truct與Reflect.construct)法中都需要傳遞一_eagt_的額外參數(shù)的原因。e.aetse()調(diào)用的參數(shù)界面上傳遞的。只不過你在構(gòu)造方法中寫ue)的時(shí)候,是Jaart你可能已經(jīng)發(fā)現(xiàn)了問題的關(guān)鍵:是sp()在幫助你傳遞這個(gè)e.rese()呢?在之前的課程中我略略地提及過,當(dāng)類中沒有“construor(”時(shí)t會(huì)主動(dòng)為它創(chuàng)建一個(gè)。關(guān)于這一點(diǎn)當(dāng)時(shí)并沒有展開來細(xì)講,所以這里先補(bǔ)個(gè)課。首先,你通常寫一個(gè)類的時(shí)候,都不太會(huì)主動(dòng)去構(gòu)造方法“constructr()”。因?yàn)槎鄾r下主要義它例的性質(zhì)如方屬性器。的情,你也可能只寫一個(gè)空的類,只是為了將父類做一次簡單的派生。例如:代代1classMyClassextendsObject不過,這一點(diǎn)不太容易證實(shí)。因?yàn)樵凇癱onstruor()”方法內(nèi)無法它自身,不能寫“constructr==MyCsCMAScript的規(guī)范文檔中去確認(rèn)這一點(diǎn)。那么,既然MyClass就是constructor()方法,而用戶代碼又沒有這個(gè)方法。那么該CMAScript”,最后再將它初始化為類()。這里的“”包括兩個(gè)代碼片斷,分別“有/xeds的情況。如下:代代123456789//如果在中有extendsclassMyClassextendsXXX//{}}//如果在classMyClass//constructor()}如果沒有構(gòu)造方法(因此沒有super()調(diào)用),那么就讓引擎偷偷一個(gè)super(另一種特殊情況就是上面的這種非派生類,也就在類中語法中沒有“extendsXXX”的這種情況。上面的硬代碼中,JavaScript引擎為它生成的就是一個(gè)空的構(gòu)造方法,目的這種非派生類的非常特別,本質(zhì)上來說,它是兼容舊的JavaScript構(gòu)造器的一種語法。也就是說,如果“extendsXXX”不,那么空的構(gòu)造方法和空的函數(shù)一樣;并且即代代123456789classMyClassextends{constructor(){return1;}}function{return}代代12345newnew這樣的相似性還包括一個(gè)重要的、與今天討論的相關(guān)的特性:**非派生也不需要調(diào)ue()**ts是的,這兩種函數(shù)與類的確不調(diào)用sp(),但這只說明它不需要向父類傳遞wtrgte.aet你應(yīng)該還記得,上面這兩種情況的類或構(gòu)造器函數(shù)都是可以通過run課也一再強(qiáng)調(diào)過:所以如果是用戶定制的創(chuàng)建過程,那么就回到了最開始的那個(gè)問題上:父類并不知道子類X,卻又需要.rtye來為實(shí)例tis代代//參見本講開始的_Date()Object.setPrototypeOf(x,.roye是子類通過ue()傳遞來的,因此作為父類的Mlss代代//(也就是Object.setPrototypeOf(this,代代classMyClassextendsnullconstructor()455}}xesMlss派生ul(也就是沒有原型),能ue)的。并且由于沒有原型,所以Jaartylss創(chuàng)hs實(shí)例。所以,在這個(gè)“construor()”ts也不能調(diào)用pr()。你必須確信這樣的類只能用作根類(顯然,它不是任何東西派生出來的子類)tis代代123456789classMyClassextends{constructor()return}}//console.log(new//MyClassconsole.log(new(classextendsMyClass{}));//所以,僅僅是這樣的一行代碼,就幾乎已經(jīng)窮盡了JavaScript類構(gòu)建過程的全部當(dāng)然如果父類并不關(guān)心子類實(shí)例的原型,那么它返回任何的對(duì)象都是可以的,子類在super()代代classMyClassconstructor(){returnnewDate33456789}classextends{constructor(){super()};//ordefaultfoo(){console.log('check}}varx=new;console.log(xinstanceof );//console.log('foo'inx);//new.target為什么稱為元屬性,它與a.b(super.xxx,或者’a’.toString)有 售賣。頁面已增加防盜追蹤,將依 上一 14|super.xxx():雖然直到ES10還是個(gè)半吊子實(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年思政學(xué)習(xí)與應(yīng)用試題及答案
- 消防設(shè)施操作員實(shí)踐經(jīng)驗(yàn)試題及答案
- 消防事故現(xiàn)場調(diào)查技巧試題及答案
- 大學(xué)安全工作推進(jìn)會(huì)發(fā)言稿
- 經(jīng)典名著背誦技巧試題及答案
- 追尋知識(shí)的步伐:試題及答案
- 2025年度銀行與融資擔(dān)保機(jī)構(gòu)資產(chǎn)保全合作協(xié)議
- 2025年度網(wǎng)絡(luò)劇主演聘用合同書
- 2025年度美發(fā)店員工勞動(dòng)權(quán)益保護(hù)與員工手冊協(xié)議
- 二零二五年度汽車零部件用高檔五金產(chǎn)品供應(yīng)合同
- 醫(yī)療器械設(shè)備安裝技術(shù)方案
- 網(wǎng)約車數(shù)據(jù)共享合作協(xié)議書
- 人工智能安全與隱私保護(hù)培訓(xùn)課件
- 人教版(PEP)五年級(jí)英語下冊第一單元測試卷-Unit 1 My day 含答案
- 產(chǎn)品定價(jià)模型
- 茅臺(tái)1935-高端傳統(tǒng)文化消費(fèi)品品鑒會(huì)酒水活動(dòng)策劃方案
- 綠色建筑工程監(jiān)理細(xì)則
- 國開2024年秋《機(jī)械制圖》形考作業(yè)1-4答案
- 眼鏡學(xué)智慧樹知到答案2024年溫州醫(yī)科大學(xué)
- 臨床兒童特有骨折影像診斷要點(diǎn)
- 2024年秋新滬科版七年級(jí)上冊數(shù)學(xué)教學(xué)課件 第2章 整式加減 數(shù)學(xué)活動(dòng) 數(shù)學(xué)活動(dòng)
評(píng)論
0/150
提交評(píng)論