第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么要做this instanceof aQuery這個(gè)判斷呢?

if (!(

this?instanceof?aQuery

)) {return new aQuery(selector);} 這段代碼沒(méi)看明白,怎么 個(gè)厲害法呢


正在回答

5 回答

在當(dāng)前示例代碼下,每次調(diào)用aQuery實(shí)際上是運(yùn)行了兩遍aQuery函數(shù)。過(guò)程如下:

首先是用戶(hù)手動(dòng)調(diào)用aQuery這個(gè)函數(shù),比如aQuery('#book'), 這時(shí)候進(jìn)入aQuery函數(shù),因?yàn)闆](méi)有用new方式調(diào)用,所以函數(shù)內(nèi)部this指代的是window,所以這時(shí)候會(huì)進(jìn)入if語(yǔ)句中,重新通過(guò)new方式調(diào)用aQuery函數(shù)。第二次進(jìn)入aQuery函數(shù)內(nèi)部,這時(shí)候因?yàn)橛衝ew關(guān)鍵字,所以this就是指代aQuery實(shí)例化對(duì)象。

這種方式的好處就是當(dāng)用戶(hù)忘記使用new來(lái)調(diào)用的時(shí)候,程序也能自動(dòng)調(diào)用new。

1 回復(fù) 有任何疑惑可以回復(fù)我~

我是這樣理解的,比如說(shuō)你第一次使用aquery('#first-div'),因?yàn)閕f判斷不是aquery就使用new實(shí)例化一個(gè)對(duì)象,當(dāng)你第二次調(diào)用aquery('#first-div')時(shí),為了減少內(nèi)存資源以及cpu的浪費(fèi),這里就不再實(shí)例化了,即不再創(chuàng)建新的對(duì)象了。

2 回復(fù) 有任何疑惑可以回復(fù)我~

alert(1)


0 回復(fù) 有任何疑惑可以回復(fù)我~

構(gòu)造一個(gè)作用域安全的構(gòu)造函數(shù)?? 防止用戶(hù)沒(méi)有this綁定的全局對(duì)象中去

2 回復(fù) 有任何疑惑可以回復(fù)我~

this 指向當(dāng)前所正在使用的對(duì)象

aQuery 是一個(gè)構(gòu)造函數(shù)

Js中instanceof 運(yùn)算符是返回一個(gè) Boolean 值,指出對(duì)象是否是特定構(gòu)造函數(shù)的一個(gè)實(shí)例。

而javascript的繼承是基于原型。故此處 instanceof? 運(yùn)算符? 判斷 this對(duì)象的原型鏈上是否有構(gòu)造函數(shù)aQuery。

不存在的話,重新獲取一個(gè)實(shí)例返回。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

proto

簡(jiǎn)單點(diǎn)解釋是不是就是綁定好this的指向防止它指到全局作用域中去
2015-12-13 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么要做this instanceof aQuery這個(gè)判斷呢?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)