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>
実行結果
実行結果