jQuery中 type()源码分析

来源:互联网 发布:淘宝怎么优化 编辑:程序博客网 时间:2024/06/06 16:34
alert( {}.toString.call(new Date) );//[object Date]alert( {}.toString.call([]) );      //[object Array]alert( {}.toString.call(new RegExp) );//[object RegExp]alert( {}.toString.call(new Function) );//[object Function]alert( {}.toString.call(new Boolean) );//[object Boolean]alert( {}.toString.call({}) );//[object Object]
class2type = {},core_toString = class2type.toString,type: function( obj ) {当obj为undefined或null时,直接返回obj的值if ( obj == null ) {return String( obj );}// Support: Safari <= 5.1 (functionish RegExp)//当obj的类型为object或function时,执行class2type[ core_toString.call(obj) ] || "object"//否则执行 typeof objreturn typeof obj === "object" || typeof obj === "function" ?class2type[ core_toString.call(obj) ] || "object" :typeof obj;},//class2type[ "[object Array]" ] = arrayjQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {class2type[ "[object " + name + "]" ] = name.toLowerCase();});

class2type:{
[object Array]: "array",
[object Boolean]: "boolean",
[object Date]: "date",
[object Error]: "error",
[object Function]: "function",
[object Number]: "number",
[object Object]: "object",
[object RegExp]: "regexp",
[object String]: "string"}