instanceof
- 作用:检测构造函数B的 prototype 属性是否出现在实例对象A的原型链上
- 表达式:A instanceof B
- instanceof只能用来判断对象和函数,不能用来判断字符串和数字等
function Fn() { }
var f1 = new Fn()
console.log(f1 instanceof Fn)
console.log(f1 instanceof Object)
console.log(Object instanceof Fn)
var str = '123';
console.log(str instanceof String)
console.log(Object instanceof Function)
console.log(Object instanceof Object)
console.log(Function instanceof Function)
console.log(Function instanceof Object)
寻找方式
- 以 Object instanceof Function 为例
- A沿着__proto__寻找
- B沿着prototype寻找
- 若找寻后指向一致,则返回 true, 反之则 false