利用constructor 統一判斷 類對象的具體類型(包括自定義類型的對象)

function getFunType(para){// para 是 傳入的對象
    var pattern = /function\s+([\w]+)/ ; // 正則表達式 \w 表示匹配數字或者字母或者下劃線, \s 表示匹配空白符
    result = [];
    if( para.constructor && typeof para.constructor.toString == "function" ){// 處理自定義類型,例如上一篇文章中講的自定義的類
        result = para.constructor.toString().match(pattern);
    }

    if( result && result.length > 1 ){
        return result[1];
    }
    return typeof para;
    

}

可以判斷的類型包括簡單類型和內置類型,比如

getFunType(1) 返回 Number

getFunType("ddd") 返回 string

getFunType(new Date()) 返回 Date

getFunType(/function\s+([\w]+)/) 返回 RegExp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章