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

我想做这样的事情

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

但是它得到了一个

回调不是函数

未定义回调时发生错误。


当前回答

Try:

if (!(typeof(callback)=='undefined')) {...}

其他回答

Try:

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

使用函数调用的可选链接,你可以做到以下几点:

function something_cool(text, callback) {
    alert(text);
    callback?.();
}

如果callback是一个函数,它将被执行。

如果callback为null或未定义,则不会抛出错误,也不会发生任何事情。

然而,如果callback是其他东西,例如字符串或数字,TypeError仍然会被抛出。

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

Try:

if (!(typeof(callback)=='undefined')) {...}

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

也许你会需要它;)

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