Глядя под капот в UnderscoreJS, я вижу:
_.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? Не поддерживается ли типof более старыми браузерами?