jquery中获取对象类型字符串的代码,tostring.call(obj)详解
问题:
在jquery获取对象类型字符串的代码中,class2type[ tostring.call( obj ) ]这一行代码的作用是什么?
代码:
var class2type = {}; var tostring = class2type.tostring; function totype( obj ) { if ( obj == null ) { return obj + ""; } return typeof obj === "Object" ? class2type[ tostring.call( obj ) ] || "object" : typeof obj; }
答案:
class2type.tostring等同于object.prototype.tostring,它用以获取对象的类型字符串。
tostring.call( obj )调用了对象的tostring方法,该方法会返回对象的类型字符串。如“[object object]”、“[object Array]”、“[object function]”等。
在totype函数中,tostring.call( obj )获取的对象类型字符串被用作class2type对象的键。class2type对象存储了不同的类型字符串与其对应的类型名称。
例如:
class2type["[object Object]"] = "object"; class2type["[object Array]"] = "array"; class2type["[object Function]"] = "function";
因此,class2type[ tostring.call( obj ) ]返回对象的类型名称。它用于确定对象的类型,以便可以对其执行特定操作。