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