问答详情
源自:8-4 instanceof

写了一个模拟instanceof的函数

function instanof(obj,func){
    if(func.prototype==undefined){
        throw new Error("这个func是什么鬼@_@");
    }
    if(typeof obj != 'object'){
        throw new Error("这个obj是什么鬼@_@");
    }
    var a=obj.__proto__;
    while(a!=undefined){
        if(a===func.prototype){
            return true;
        }
        a=a.__proto__;
    }
    return false;
}

老师你看看写的没错吧~嘛?

提问者:Flames 2015-06-21 20:00

个回答

  • superboo
    2016-06-08 15:13:20

    应该不对。至少我认为这个函数的实现应该 有两点需要注意。

    1. 是一个递归

    2. 应该是值比较不是引用比较

    3. __proto__ 这个属性并不是ECMAscript规范中的。

  • 慕慕9986984
    2015-12-22 14:51:16

    不对吧!