前端嘛 Logo
前端嘛

instanceof 运算符

instanceof 运算符用于检测右侧构造函数的原型对象是否出现在左侧对象的原型链上

手写 instanceof

通过 Object.getPrototypeof() 获取对象的原型,遍历原型链,判断右侧构造函数的原型对象是否出现在原型链上

const myInstanceof = (left, right) => {
  const prototype = right.prototype;
  let proto = Object.getPrototypeOf(left);
  while (proto) {
    if (proto === prototype) return true;
    proto = Object.getPrototypeOf(proto);
  }
  return false;
};