天天看點

《JavaScript面向對象精要》——1.6 鑒别引用類型

本節書摘來自異步社群《javascript面向對象精要》一書中的第1章,第1.6節,作者:【美】nicholas c. zakas著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

函數是最容易鑒别的引用類型,因為對函數使用typeof操作符時,傳回值是“function”。

對其他引用類型的鑒别則較為棘手,因為對于所有非函數的引用類型,typeof傳回“object”。在處理很多不同類型的時候這幫不上什麼忙。為了更友善地鑒别引用類型,可以使用javascript的instanceof操作符。

instanceof操作符以一個對象和一個構造函數為參數。如果對象是構造函數所指定的類型的一個執行個體,instanceof傳回true;否則傳回false,如下例。

本例用instanceof和構造函數測試了幾個值,它們真正的類型都被正确鑒别出來(即使該構造函數并沒有被用于建立該變量)。

instanceof操作符可鑒别繼承類型。這意味着所有對象都是object的執行個體,因為所有引用類型都繼承自object。

作為示範,下列代碼用instanceof檢查了之前那3種引用。

每種引用類型的對象都被正确鑒别為object的執行個體。

繼續閱讀