Skip to content

instanceOf

判断实例派生关系

语法:obj instanceof constructor

原理:obj 的原型链上,是否存在 constructor 的 prototype

注意点:不想污染 obj,用 Object.create

js
  // walk obj __proto__ 
  function instanceOf(obj, fn) {
    let _obj = Object.create(obj)
    while (_obj.__proto__ !== null) {
      if (_obj.__proto__ === fn.prototype) {
        return true
      }
      _obj = _obj.__proto__
    }
    return false
  }