В
документации приведена возможность использования метода Объекта
toString(), для определения типа объекта:
var toString = Object.prototype.toString;
toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]
// Начиная с JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
Об этом свойстве метода
toString(), я честно говоря не знал, пока не наткнулся
там же, в описании полифила метода масиива
from() на такое вот условие для проверки что функция "вызываема":
var toStr = Object.prototype.toString;
var isCallable = function(fn) {
return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
};
Вопрос собственно в чём: когда первое условие (typeof fn === 'function') может не сработать? Зачем расширили условие?