首先我们要了解
1. 每个函数function都有一个prototype,即显式原型(属性) prototype
2. 每个实例对象都有一个__proto__,可称为隐式原型(属性) __proto__
3. 对象的隐式原型的值为其对应构造函数的显式原型的值
console.log(Object instanceof Function) // true
console.log(Object instanceof Object) // true
console.log(Function instanceof Function) // true
console.log(Function instanceof Object) // true
function Foo() {}
console.log(Object instanceof Foo) // false