instanceof

文章链接

      function myInstanceof(left, right) {
        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)
        }
      }

      console.log(myInstanceof([], Array)) // true
      console.log(myInstanceof([], Object)) // true
      console.log(myInstanceof({}, Array)) // false
      console.log(myInstanceof({}, Object)) // true