写了一个模拟instanceof的函数

来源:8-4 instanceof

Flames

2015-06-21 20:00

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;
}

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

写回答 关注

2回答

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

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

    1. 是一个递归

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

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

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

    不对吧!

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281102 学习 · 1020 问题

查看课程

相似问题