Показать сообщение отдельно
  #1 (permalink)  
Старый 25.09.2020, 08:48
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Object.prototype.toString
В документации приведена возможность использования метода Объекта 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') может не сработать? Зачем расширили условие?
Ответить с цитированием