instanceof用于判断引用类型,不能判断普通数据类型!
instanceof 用于判断某个对象是否是另一个对象(构造方法)的实例。instanceof会查找原型链,直到null如果还不是后面这个对象的实例的话就返回false,否则就返回true
function instanceofFun(obj, con){ if(typeof con != 'function') throw new Error('instance error'); // 构造函数不是函数报错 if(!obj || (typeof obj != 'object' && typeof obj != 'object')) return false; // 没有实例或实例不是引用类型返回false while (obj.__proto__){ // 最终obj.__proto__是nall的时候退出循环 if(obj.__proto__ == con.prototype) return true; obj = obj.__proto__; } return false; } console.log(instanceofFun([], Array));