摘要:自定義一個構造函數利用上面的構造函數構造一個實例運算符的第一個變量是一個對象,暫時稱為第二個變量一般是一個函數,暫時稱為。
Instanceof運算符的第一個變量是一個對象,暫時稱為A;第二個變量一般是一個函數,暫時稱為B。Instanceof的判斷規則是:沿著A的__proto__這條線來找,同時沿著B的prototype這條線來找,如果兩條 線能找到同一個引用,即同一個對象,那么就返回true。如果找到終點還未重合,則返回false。
那我們來按照這個規則一個一個來驗證上面的結果:
注意:每個函數都有一個prototype屬性(原型),是一個對象,每個對象都有一個__proto__(隱式原型),指向它的構造函數的 prototype,對象沒有prototype
1、fun1 instanceof Fun
fun1.__proto__=Fun.prototype
Fun.prototype
從上可以看出,fun1和Fun最后找到了同一個引用---Fun.prototype
注意:因為prototype是一個對象,所以它的__proro__就是Object.prototype
2、fun1 instanceof Function
fun1.__proto__=Fun.prototype ===>Fun.prototype.__proto__={ }.__proto__=Object.prototype
Function.prototype
可以看出fun1和Fun最后沒有同一個引用
注意:Function.prototype還是指向Function.prototype
3、fun1 instanceof Object
fun1.__proto__=Fun.prototype ==> Fun.prototype.__proto__={ }.__proto__=Object.prototype
Object.prototype
從上可以看出,fun1和Object最后找到了同一個引用---Object.prototype
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/106645.html
摘要:一是如何工作的在上是這樣描述的運算符用于測試構造函數的屬性是否出現在對象原型鏈中的任何位置換句話說,如果,那么必須是一個對象,而必須是一個合法的函數。下面我們舉一個例子一步步來說明第一步每一個構造函數都有一個屬性。 在 JavaScript 中,我們通常用 typeof 判斷類型,但是在判斷引用類型的值時,常常會遇到一個問題:無論引用的是什么類型的對象,都會返回 object(當然還有...
摘要:對象類型常見的有,,,正則新增自己提供的樂行判斷如果不對對象做嚴格區分使用。的實現使用了原型繼承的表示左表達式,表示右表達式,它是用是否等于來判斷對象的類型的。常見框架和庫的實數據類型判斷測試這里將的實現原理抽取出來,用原生實現。 JavaScript一共有六種數據類型,分為原始類型(又名基本類型)和對象類型(又名引用類型) 原始類型有五種,分別為number,string,boole...
摘要:基本數據類型引用類型判斷數據類型的方法判斷中的數據類型有一下幾種方法接下來主要比較一下這幾種方法的異同。通常情況下用判斷就可以了,遇到預知類型的情況可以選用或方法實在沒轍就使用方法。 基本數據類型:String、Number、Boolean、Symbol、undefined、Null引用類型:Object Array Function 判斷數據類型的方法: 判斷js中的數據類型有一...
摘要:基本數據類型引用類型判斷數據類型的方法判斷中的數據類型有一下幾種方法接下來主要比較一下這幾種方法的異同。通常情況下用判斷就可以了,遇到預知類型的情況可以選用或方法實在沒轍就使用方法。 基本數據類型:String、Number、Boolean、Symbol、undefined、Null引用類型:Object Array Function 判斷數據類型的方法: 判斷js中的數據類型有一...
閱讀 2571·2021-11-22 12:05
閱讀 3456·2021-10-14 09:42
閱讀 1688·2021-07-28 00:15
閱讀 1992·2019-08-30 11:08
閱讀 1489·2019-08-29 17:31
閱讀 934·2019-08-29 16:42
閱讀 2342·2019-08-26 11:55
閱讀 2122·2019-08-26 11:49