JavaScript オブジェクトのインスタンスを調べる
どのオブジェクトから派生したのか調べるには「instanceof」演算子を使う。JavaScriptでは、多くをオブジェクトとして扱います。あらかじめ決められたオブジェクトから生成する以外に、独自に作成したオブジェクトを生成することもできます。生成されたオブジェクトが、どのような種類のオブジェクトなのかを調べるためには、「instanceof」演算子を使います。「typeof」演算子では型が返るだけなので、正確な情報はわかりません。また、「instanceof」演算子以外には、オブジェクトの「constructor」プロパティを使って生成元のオブジェクト(内容)を確認することもできます。
<body>
<script>
window.addEventListener("load" , function(){
var ele = document.getElementsByTagName("output")[0];
var myObj = []; //各種オブジェクトを格納する配列を用意
myObj[0] = new Array(); //配列オブジェクト作成
myObj[1] = new Date(); //Dateオブジェクト作成
myObj[2] = new Man("KF",43); //manオブジェクト作成
//特定のオブジェクトのインスタンスか調べ結果を出力
for(var i=0; i<myObj.length; i++){
var flag1 = myObj[i] instanceof Array;
var flag2 = myObj[i] instanceof Date;
var flag3 = myObj[i] instanceof Man;
ele.innerHTML += "myObj["+i+"] : Array ? "+flag1+"<br>";
ele.innerHTML += "myObj["+i+"] : Date ? "+flag2+"<br>";
ele.innerHTML += "myObj["+i+"] : Man ? "+flag3+"<hr>";
}
//自前のオブジェクトを生成するためのクラス
function Man(name,age){
this.name = name;
this.age = age;
}
}, false);
</script>
<output></output>
</body>