Fork me on GitHub

为啥JS中判断对象是否是类的实例推荐使用instanceof而不推荐constructor

书中说要使用instanceof来判断对象是否属于某个类的实例,而不是constructor,这是为什么尼?

因为instanceof不但可以判断出是直接类的实例(通过new的方式),还可以判断是否是父类的实例

而constructor属性只可以判断出是否是直接类的实例。

从继承的角度看instanceof更加适合。

上代码

    function Demo(name,age){
        this.name = name;
        this.age = age;
    }

    var demo_1 = new Demo("1023",25);
    /*测试instanceof*/
    console.log(demo_1 instanceof Demo); //true
    console.log(demo_1 instanceof Object);//true
    
    /*测试constructor*/
    console.log(demo_1.constructor == Demo);//true
    console.log(demo_1.constructor == Object);//false

posted @ 2016-04-13 22:46  MR._K  阅读(802)  评论(0编辑  收藏  举报