原理 A instanceof B instanceof用于检测对象A是不是对象B的实例,而检测是基于原型链进行查找的,也就是说对象B的prototype有没有在对象A的__proto__原型链上,如果有就返回true,否则返回false 代码实现 function instanceOf(A, B) { while (A) { A = A.__proto__ if (A === B.prototype) { return true } } return false } var a = { a: 10 } console.log(instanceOf({}, Array), a);