isNull: function(a){
return a === null;
},
isUndefine: function(a){
return a === 未定義;
},
isNumber: function(a){
return typeof a === 'number';
},
isString: function(a){
return typeof a === 'string';
},
isBoolean: function(a){
return typeof a === 'boolean';
},
isPrimitive: function(b){
var a = typeof b;
return !!(b === 未定義 || b === null || a == 'ブール' || a == '数値' || a == '文字列');
},
isArray: function(a){
return proto_obj.toString.call(a) === '[オブジェクト配列]';
},
isFunction: function(a){
return proto_obj.toString.call(a) === '[オブジェクト関数]';
},
isPlainObject: function(o){
if (!o || o === win || o === doc || o === doc.body) {
false を返します。
}
return 'isPrototypeOf' in o && proto_obj.toString.call(o) === '[object Object]';
},
isWindow: function(o){
return o && typeof o === 'object' && 'setInterval' in o;
},
isEmptyObject: function(o){
for(var a in o) {
return false;
}
true を返します。
}
以上は XX 系列内で、クラス内で使用される未定義の最大のものです。あるパラメータが渡されたかどうかを判断するように、オブジェクトが何らかのプロパティなどを持っているかどうかを判断します。理由は次のとおりです。
1、isUnknown は、完全等 (===) または多層関数の型を使用するのと比べて直接使用されます。生成された計算効率は低いですが(多少の不足はありますが)、未定義の調整回数の場合、数万回以上も使用されることは明らかです。 1%近くを占める時間もまた、単に判断するだけで任意である。多層のパケットの最上層では、それが未定義である場合もある。
2 の関数は、ある意味で、適切なコードを構成する方法の 1 つであり、コードの重複性を下げるのに役立ちます。 isNull/isUnknown/isBoolean/isNumber/isString 関数内には 1 つの句があり、抽象層としては非常に低いため、完全にカプセル化する必要がなく、関数を抽出します。
上で、クラス内の基本的な型の判断に関する isNull/isUnknown/isBoolean/isNumber/isString を削除しました。必要です。これらを判断する場合には、数値の種類等がそのまま使用される。