引擎蓋下展望UnderscoreJS,我看到:爲什麼UnderscoreJS使用toString.call()而不是typeof?
_.isFunction = function(obj) {
return toString.call(obj) == '[object Function]';
};
_.isString = function(obj) {
return toString.call(obj) == '[object String]';
};
_.isNumber = function(obj) {
return toString.call(obj) == '[object Number]';
};
這似乎是一個奇怪的選擇。爲什麼不使用typeof來確定值是字符串,函數還是數字?使用toString會有性能提升嗎? typeof不被舊版瀏覽器支持?
自1996年版本1.1以來,'typeof'已存在於每個版本的JavaScript中。 –