instanceof

instanceof 可以正确的判断对象的类型,因为内部机制是通过判断对象的原型链中是不是能找到类型的 prototype

我们也可以试着实现一下 instanceof

  1. function instanceof(left, right) {
  2. // 获得类型的原型
  3. let prototype = right.prototype
  4. // 获得对象的原型
  5. left = left.__proto__
  6. // 判断对象的类型是否等于类型的原型
  7. while (true) {
  8. if (left === null)
  9. return false
  10. if (prototype === left)
  11. return true
  12. left = left.__proto__
  13. }
  14. }