如何判断JavaScript中的函数是否已定义?

我想做这样的事情

function something_cool(text, callback) {
    alert(text);
    if( callback != null ) callback();
}

但是它得到了一个

回调不是函数

未定义回调时发生错误。


当前回答

function something_cool(text, callback){
    alert(text);
    if(typeof(callback)=='function'){ 
        callback(); 
    };
}

其他回答

typeof callback === "function"

我正在寻找如何检查一个jQuery函数是否被定义,我没有找到它很容易。

也许你会需要它;)

if(typeof jQuery.fn.datepicker !== "undefined")

Try:

if (typeof(callback) == 'function')

我建议以下功能:

function isFunction(name) {
    return eval(`typeof ${name} === typeof Function`);
}
if (callback && typeof(callback) == "function")

请注意,如果callback为undefined、null、0或false,则它的计算结果为false。与null的比较过于具体。