Я заметил странную вещь в javascript. Рассмотрим ниже:
var fn = ''.toUpperCase.call
console.log(typeof fn); // "function"
fn(); // Uncaught TypeError: `fn` is not a function
Вышеупомянутое было выполнено на моей консоли разработчика Chrome. Версия 43.0.2357.81 m
.
Оператор typeof
ясно показывает, что fn
является функцией, но ошибка предполагает иное.
Я заметил, что Function.apply
показывает хотя бы какое-то значимое сообщение об ошибке.
Итак, когда функция, а не функция?