3.Javascript實現instanceof

instanceof

instanceof 用於判斷某個對象是不是另外一個對象(構造方法)的實例。instanceof會查找原型鏈,直到null若是還不是後面這個對象的實例的話就返回false,不然就返回true函數

 1 function instanceofFunc(obj, cons) {
 2   // 錯誤判斷 構造函數必須是一個function 其餘的均報錯
 3   if (typeof cons !== 'function') throw new Error('instance error')
 4   if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) return false
 5   // 獲取到原型對象
 6   let proto = cons.prototype
 7   // 若是obj的原型對象不是null
 8   while (obj.__proto__) {
 9     if (obj.__proto__ === proto) return true
10     obj = obj.__proto__
11   }
12   return false
13 }
14 
15 console.log(instanceofFunc(() => {}, Function)) // true
相關文章
相關標籤/搜索