まず
グローバル変数 class2type = {};
rdigit = /d/, // 数値であるかどうかを定期的に判断します
toString = Object.prototype.toString;
jQuery.each を通じて class2type を定義します属性と値:
jQuery.each("ブール値 数値 文字列 関数 配列 日付 RegExp Object".split(" "), function(i, name) {
class2type[ "[object " name "]" ] = name.toLowerCase();
});
Type: function( obj ) {
return obj == null ?String( obj ) :class2type[ toString.call(obj) ] || "object";// js 内のすべてのものはオブジェクトなので、 toString .call(obj) を使用すると、対応するオブジェクト タイプ
が返されます。 // このメソッドを直接使用してタイプを決定する場合、IE では document.getElementById がオブジェクトとみなされ、他のブラウザでは関数 // 渡された値が NaN の場合、「数値」が返されます
}
isFunction: function( obj ) {return jQuery.type(obj) === "function";}// IE では、 document.getElementById が渡されると false が返され、IE は object
isArray: Array.isArray || function( obj ) {return jQuery.type(obj) === "array";}/ /ネイティブ Array に isArray メソッドがある場合は Array.isArray を使用し、それ以外の場合はこのメソッドをカスタマイズします
isWindow: function( obj ) {return obj && typeof obj === "object" && "setInterval" in obj;}//決定ウィンドウオブジェクトかどうか
isNaN : function( obj ) {return obj == null || !rdigit.test( obj ) || isNaN( obj );}//
isEmptyObject: function( obj ) {
for ( var name in obj ) {// オブジェクトに属性またはメソッドがあるかどうかが判断の基準となります。
return false;
}
return true; >