摘要:自定義一個(gè)構(gòu)造函數(shù)利用上面的構(gòu)造函數(shù)構(gòu)造一個(gè)實(shí)例運(yùn)算符的第一個(gè)變量是一個(gè)對(duì)象,暫時(shí)稱(chēng)為第二個(gè)變量一般是一個(gè)函數(shù),暫時(shí)稱(chēng)為。
Instanceof運(yùn)算符的第一個(gè)變量是一個(gè)對(duì)象,暫時(shí)稱(chēng)為A;第二個(gè)變量一般是一個(gè)函數(shù),暫時(shí)稱(chēng)為B。Instanceof的判斷規(guī)則是:沿著A的__proto__這條線來(lái)找,同時(shí)沿著B(niǎo)的prototype這條線來(lái)找,如果兩條 線能找到同一個(gè)引用,即同一個(gè)對(duì)象,那么就返回true。如果找到終點(diǎn)還未重合,則返回false。
那我們來(lái)按照這個(gè)規(guī)則一個(gè)一個(gè)來(lái)驗(yàn)證上面的結(jié)果:
注意:每個(gè)函數(shù)都有一個(gè)prototype屬性(原型),是一個(gè)對(duì)象,每個(gè)對(duì)象都有一個(gè)__proto__(隱式原型),指向它的構(gòu)造函數(shù)的 prototype,對(duì)象沒(méi)有prototype
1、fun1 instanceof Fun
fun1.__proto__=Fun.prototype
Fun.prototype
從上可以看出,fun1和Fun最后找到了同一個(gè)引用---Fun.prototype
注意:因?yàn)閜rototype是一個(gè)對(duì)象,所以它的__proro__就是Object.prototype
2、fun1 instanceof Function
fun1.__proto__=Fun.prototype ===>Fun.prototype.__proto__={ }.__proto__=Object.prototype
Function.prototype
可以看出fun1和Fun最后沒(méi)有同一個(gè)引用
注意:Function.prototype還是指向Function.prototype
3、fun1 instanceof Object
fun1.__proto__=Fun.prototype ==> Fun.prototype.__proto__={ }.__proto__=Object.prototype
Object.prototype
從上可以看出,fun1和Object最后找到了同一個(gè)引用---Object.prototype
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/106645.html
摘要:一是如何工作的在上是這樣描述的運(yùn)算符用于測(cè)試構(gòu)造函數(shù)的屬性是否出現(xiàn)在對(duì)象原型鏈中的任何位置換句話說(shuō),如果,那么必須是一個(gè)對(duì)象,而必須是一個(gè)合法的函數(shù)。下面我們舉一個(gè)例子一步步來(lái)說(shuō)明第一步每一個(gè)構(gòu)造函數(shù)都有一個(gè)屬性。 在 JavaScript 中,我們通常用 typeof 判斷類(lèi)型,但是在判斷引用類(lèi)型的值時(shí),常常會(huì)遇到一個(gè)問(wèn)題:無(wú)論引用的是什么類(lèi)型的對(duì)象,都會(huì)返回 object(當(dāng)然還有...
摘要:一中數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型復(fù)雜數(shù)據(jù)類(lèi)型二判斷數(shù)據(jù)類(lèi)型下面將對(duì)如下數(shù)據(jù)進(jìn)行判斷它們的類(lèi)型使用由結(jié)果可知可以測(cè)試出及,而對(duì)于及數(shù)組對(duì)象,均檢測(cè)出為,不能進(jìn)一步判斷它們的類(lèi)型。但是它不能檢測(cè)非原生構(gòu)造函數(shù)的構(gòu)造函數(shù)名。 一、JS中數(shù)據(jù)類(lèi)型 基本數(shù)據(jù)類(lèi)型(Undefined、Null、Boolean、Number、String) 復(fù)雜數(shù)據(jù)類(lèi)型 (Object) 二、判斷數(shù)據(jù)類(lèi)型 下面將對(duì)如下...
摘要:對(duì)象類(lèi)型常見(jiàn)的有,,,正則新增自己提供的樂(lè)行判斷如果不對(duì)對(duì)象做嚴(yán)格區(qū)分使用。的實(shí)現(xiàn)使用了原型繼承的表示左表達(dá)式,表示右表達(dá)式,它是用是否等于來(lái)判斷對(duì)象的類(lèi)型的。常見(jiàn)框架和庫(kù)的實(shí)數(shù)據(jù)類(lèi)型判斷測(cè)試這里將的實(shí)現(xiàn)原理抽取出來(lái),用原生實(shí)現(xiàn)。 JavaScript一共有六種數(shù)據(jù)類(lèi)型,分為原始類(lèi)型(又名基本類(lèi)型)和對(duì)象類(lèi)型(又名引用類(lèi)型) 原始類(lèi)型有五種,分別為number,string,boole...
摘要:基本數(shù)據(jù)類(lèi)型引用類(lèi)型判斷數(shù)據(jù)類(lèi)型的方法判斷中的數(shù)據(jù)類(lèi)型有一下幾種方法接下來(lái)主要比較一下這幾種方法的異同。通常情況下用判斷就可以了,遇到預(yù)知類(lèi)型的情況可以選用或方法實(shí)在沒(méi)轍就使用方法。 基本數(shù)據(jù)類(lèi)型:String、Number、Boolean、Symbol、undefined、Null引用類(lèi)型:Object Array Function 判斷數(shù)據(jù)類(lèi)型的方法: 判斷js中的數(shù)據(jù)類(lèi)型有一...
摘要:基本數(shù)據(jù)類(lèi)型引用類(lèi)型判斷數(shù)據(jù)類(lèi)型的方法判斷中的數(shù)據(jù)類(lèi)型有一下幾種方法接下來(lái)主要比較一下這幾種方法的異同。通常情況下用判斷就可以了,遇到預(yù)知類(lèi)型的情況可以選用或方法實(shí)在沒(méi)轍就使用方法。 基本數(shù)據(jù)類(lèi)型:String、Number、Boolean、Symbol、undefined、Null引用類(lèi)型:Object Array Function 判斷數(shù)據(jù)類(lèi)型的方法: 判斷js中的數(shù)據(jù)類(lèi)型有一...
閱讀 2699·2021-11-22 12:05
閱讀 3588·2021-10-14 09:42
閱讀 1821·2021-07-28 00:15
閱讀 2119·2019-08-30 11:08
閱讀 1627·2019-08-29 17:31
閱讀 1056·2019-08-29 16:42
閱讀 2471·2019-08-26 11:55
閱讀 2249·2019-08-26 11:49