1.typeof
欠点: null や Array などの型を検出するのはあまり便利ではありません
Js コード
typeof null; //"object"
typeof []; //"object"
2. instanceof
短所: 1. オブジェクト型にのみ適用可能
2. 現在のクラスがインスタンスのプロトタイプチェーン上にある限り、検出された結果は true
Js コード
123 //false
nullinstanceofnull; //TypeError
nullinstanceofObject; //false
function A(){}
function B(){}
A.prototype=new B(); A() ;
aObjinstanceofB;//true
aObjinstanceofA;//true
3.constructor
注: クラス継承中にエラーが発生します
Js コード
function A(){ };
関数 B(){};
A.prototype = new B();
aObj.constructor === B; constructor === A; //false;
4. カスタムメソッドの実装 (より一般的な)
Js コード
function getType(o){
return Object.prototype.toString.call(o).slice(8) ,-1 ;
getType({}); //「オブジェクト」
getType(()=>{}); //「関数」
getType('div'); /"HTMLDivElement"