jQuery isFunction check error "function is not defined"

I want to do a check whether a function exist or not before trying to run it. Here is my code:

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

However, when the function is not available I got the error:

myfunc is not defined

How can I do the detection? Here is my working test: http://jsfiddle.net/3m3Y3/


Solution 1:

By putting () after the function name, you're actually trying to run it right there in your first line.

Instead, you should just use the function name without running it:

if ($.isFunction(myfunc)) {

However - If myfunc is not a function and is not any other defined variable, this will still return an error, although a different one. Something like myfunc is not defined.

You should check that the name exists, and then check that it's a function, like this:

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

Working example here: http://jsfiddle.net/sXV6w/

Solution 2:

try this

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