Историческая функция $.isFunction()
Определение и применение
Функция $.isFunction() проверяла, является ли переданное значение функцией. В старых плагинах её
использовали перед вызовом необязательного обработчика, чтобы не пытаться вызвать строку или отсутствующую настройку.
Синтаксис
const isCallback = $.isFunction(value);Параметры и возвращаемое значение
value — проверяемое значение любого типа. Результат — true или false; сама
функция не вызывается. Наличие у объекта метода call не делает его автоматически функцией.
Проверка отвечает только на вопрос о типе. Она не подтверждает число параметров, смысл возвращаемого значения или отсутствие исключений при вызове обработчика.
Особенности и совместимость
API появился в 1.2, устарел с 3.3 и удалён в 4.0. Обычно заменяется выражением
typeof value === "function". У старых версий были особенности распознавания некоторых
браузерных и новых видов функций.
У класса JavaScript typeof также даёт "function", хотя вызвать класс без
new нельзя. Если контракт требует обработчик, проверяйте этот контракт при настройке компонента. Пример
использует обычную функцию и запускается на 3.1.1.
Документация
Пример старого кода
Проверка обработчика: попробуйте сами
Обычная функция распознаётся как функция, строка с её именем — нет. Затем показана современная проверка. Используется jQuery 3.1.1.
index.html
<pre id="result"></pre>
main.js
function handler() {
return 'готово'
}
$('#result').text([$.isFunction(handler), $.isFunction('handler'), typeof handler === 'function'].join(' | '))
Нажмите , чтобы запустить пример.