Skip to content

实现 instanceof

Posted on:2021年7月7日 at 00:13

instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。

const myInstanceof = (left, right) => {
  // 基本数据类型都返回false
  if (typeof left !== "object" || left === null) return false;
  let proto = Object.getPrototypeOf(left);
  while (true) {
    if (proto === null) return false;
    if (proto === right.prototype) return true;
    proto = Object.getPrototypeOf(proto);
  }
};
原文转自:https://fe.ecool.fun/topic/8b62ba3f-fe82-4bd5-b1a3-057b668ef01f