instanceof原理解析

instanceof 能夠正確的判斷對象的類型,由於內部機制是經過判斷對象的原型鏈中是否是能找到類型的 prototypespa

分析:prototype

  • 首先獲取類型的原型
  • 而後得到對象的原型
  • 而後一直循環判斷對象的原型是否等於類型的原型,直到對象原型爲 null,由於原型鏈最終爲 null
// 右邊變量的原型存在於左邊變量的原型鏈上
function myInstanceof(left, right) {
  let prototype = right.prototype
  left = left.__proto__
  while (true) {
    if (left === null || left === undefined)
      return false
    if (prototype === left)
      return true
    left = left.__proto__
  }
}
複製代碼
相關文章
相關標籤/搜索