开门见山,我们先来看一下代码:
1 var is = function (obj,type) {
2 var toString = Object.prototype.toString;
3 var _baseTypes = {'undefined':'undefined','number':'number','boolean':'boolean','string':'string'};
4 return (_baseTypes[typeof obj]===type)||
5 (type === "Null" && obj === null) ||
6 (type==='Function'&&"object" === typeof document.getElementById ?
7 /^\s*\bfunction\b/.test("" + obj):toString.call(obj).slice(8,-1) === type)||
8 obj instanceof type;
9 };
在讲解这个函数之前,让我们先来看一下t类型判断的几个关键:
兼容判断类型列表:
基本数据类型 undefined,string,number,boolean
复合数据类型 Date,String,Boolean,Number,Object,Function,Array,RegExp,Error
其他 instanceof 的范畴
参考:
1 http://lifesinger.org/blog/2009/02/javascript-type-check-1/
2 http://www.planabc.net/2010/01/23/repair_the_bug_of_isfunction_method_in_jquery/
体会:
悲剧啊,第一次写博,没想到要花这么多精力
悲剧啊,参考永远是中文,估计水平也高不到哪里去,唉,英文不行,怎么办呢!