jquery学習ノート1:データ型判断の小さな疑問
3242 ワード
暇なときにjqueryを学びたいと思って、jquery(1.7.2)のソースコードをすり抜けて、先頭の前のツール関数を見て、データ型を判断するのにとても実用的なものがあって、思い切って取り出して使います.
次の2つのコードは、次のとおりです.
(1)自分がjqueryから取り出したコードを,適宜修正した.
(2)jqueryの中の関連部分のコード、少し疑問に思って、中国語の注釈部分に書いて、指導を求めます.
コード1:
コード2:
次の2つのコードは、次のとおりです.
(1)自分がjqueryから取り出したコードを,適宜修正した.
(2)jqueryの中の関連部分のコード、少し疑問に思って、中国語の注釈部分に書いて、指導を求めます.
コード1:
var util = function(){
var class2Type = {};
var typeArr = "Number String Boolean Array Function RegExp Object Date".split(' ');
for(var i=0,len=typeArr.length; i<len; i++){
var type = typeArr[i];
class2Type['[object '+ type+']'] = type.toLowerCase();
}
return {
type: function(obj){ //jquery NaN ,$.type(NaN) 'number',
return ( obj == null || isNaN(obj) ) ? String(obj).toLowerCase() :
class2Type[Object.prototype.toString.call(obj)] || 'object';
},
isNumber: function(obj){ //
return this.type(obj) === 'number';
}
};
}();
コード2:
class2type = {};
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
});
isNumeric: function( obj ) { // obj '1122', true, $.type(obj) === 'number'
return !isNaN( parseFloat(obj) ) && isFinite( obj );
},
type: function( obj ) { // obj NaN,$.type(NaN) ‘number’, ?
return obj == null ?
String( obj ) :
class2type[ toString.call(obj) ] || "object";
},