1. 程式人生 > >判斷對象類型

判斷對象類型

pro fun prototype isa cti isarray arr style 原型鏈

1、typeof不能區分數組類型和對象,只能區分原始類型與function

2、判斷父級對象: isPrototypeOf -- 判斷對象本身數據類型,及可能繼承自原型的數據類型

  let bool = Array.prototype.isPrototypeOf(obj)

3、 判斷構造函數: 檢查整個原型鏈

  obj.constructor==Array 是數組,也可能繼承自數組
  let bool = obj instanceof Array 是數組,也可能繼承自數組

4、 判斷對象的內部class屬性: 不檢查原型鏈,只記錄對象創建時的最初類型名 -- 判斷obj本身,不反應繼承關系

  Object.prototype.toString.call(obj)==“[object Object]”

5、Array.isArray(obj)

  isArray內部使用的就是:Object.prototype.toString.call(obj)

判斷對象類型