Подтвердить что ты не робот

JQuery isFunction check error "функция не определена"

Я хочу проверить, существует ли функция или нет, прежде чем пытаться ее запустить. Вот мой код:

if ($.isFunction(myfunc())) {
    console.log("function exist, run it!!!");
}

Однако, когда функция недоступна, я получил ошибку:

myfunc не определен

Как я могу выполнить обнаружение? Вот мой рабочий тест: http://jsfiddle.net/3m3Y3/

4b9b3361

Ответ 1

Поместив () после имени функции, вы на самом деле пытаетесь запустить ее прямо в своей первой строке.

Вместо этого вы должны просто использовать имя функции, не запуская ее:

if ($.isFunction(myfunc)) {

Однако. Если myfunc не является функцией и не является какой-либо другой определенной переменной, это все равно вернет ошибку, хотя и другую. Что-то вроде myfunc is not defined.

Вы должны проверить, что имя существует, а затем проверить, что это функция, например:

if (typeof myfunc !== 'undefined' && $.isFunction(myfunc)) {

Рабочий пример здесь: http://jsfiddle.net/sXV6w/

Ответ 2

попробуйте это

if(typeof myfunc == 'function'){
    alert("exist");
}else{
    alert("not exist");
}