js中判斷數(shù)據(jù)類(lèi)型的幾種方法(二)
在上一篇介紹了可以用typeof和toString方法判斷一個(gè)給定的變量的數(shù)據(jù)類(lèi)型的基礎(chǔ)上,今天我們來(lái)看看如何用另外兩種方法constructor、instanceof來(lái)進(jìn)行類(lèi)型的判斷。
一.constructor
1.constructor屬性
js中處處皆對(duì)象,每個(gè)對(duì)象身上都會(huì)有這個(gè)屬性,默認(rèn)指向該對(duì)象對(duì)應(yīng)的構(gòu)造函數(shù),這個(gè)屬性并不是放在對(duì)象身上,而是放在其對(duì)應(yīng)的原型(_proto_)對(duì)象身上。

圖1.1.1
圖1.1.2
2.constructor的應(yīng)用
格式:obj.constructor == Classes;
返回值:false,true
2.1 判斷數(shù)據(jù)類(lèi)型

圖1.2.1.1
圖1.2.1.2

圖1.2.1.3
圖1.2.1.4

圖1.2.1.5
圖1.2.1.6
2.2 構(gòu)造函數(shù)

圖1.2.2.1
圖1.2.2.2
3.constructor判斷時(shí)存在的問(wèn)題
construction的值可以設(shè)置改變,所以在使用constructor屬性做判斷的過(guò)程中要尤其注意constructor值的變化。
3.1 constructor值變化情景一

圖1.3.1.1
圖1.3.1.2
3.2 constructor變化情景二

圖1.3.2.1
圖1.3.2.2
彌補(bǔ)措施:

圖1.3.2.3
圖1.3.2.4
3.2 constructor變化情景三

圖1.3.3.1
圖1.3.3.2
彌補(bǔ)措施;

圖1.3.3.3
圖1.3.3.4
二.instanceof運(yùn)算符
instanceof 是二元運(yùn)算符,用來(lái)查找對(duì)象與其構(gòu)造函數(shù)在原型鏈上有沒(méi)有關(guān)系。
格式:對(duì)象? ?instanceof? 構(gòu)造函數(shù);
返回值:true、false
1.判斷數(shù)據(jù)類(lèi)型
圖2.1.1
圖2.1.2
2.構(gòu)造函數(shù)
圖2.2.1
圖2.2.2
3.總結(jié)
A instance B,用代碼表示,其判斷過(guò)程如下:
圖3.1