Историческая функция $.isFunction()

Определение и применение

Функция $.isFunction() проверяла, является ли переданное значение функцией. В старых плагинах её использовали перед вызовом необязательного обработчика, чтобы не пытаться вызвать строку или отсутствующую настройку.

Синтаксис

JavaScript
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
HTML
<pre id="result"></pre>
main.js
JavaScript
function handler() {
    return 'готово'
}
$('#result').text([$.isFunction(handler), $.isFunction('handler'), typeof handler === 'function'].join(' | '))