如何判断JavaScript中的函数是否已定义?
我想做这样的事情
function something_cool(text, callback) {
alert(text);
if( callback != null ) callback();
}
但是它得到了一个
回调不是函数
未定义回调时发生错误。
如何判断JavaScript中的函数是否已定义?
我想做这样的事情
function something_cool(text, callback) {
alert(text);
if( callback != null ) callback();
}
但是它得到了一个
回调不是函数
未定义回调时发生错误。
当前回答
使用函数调用的可选链接,你可以做到以下几点:
function something_cool(text, callback) {
alert(text);
callback?.();
}
如果callback是一个函数,它将被执行。
如果callback为null或未定义,则不会抛出错误,也不会发生任何事情。
然而,如果callback是其他东西,例如字符串或数字,TypeError仍然会被抛出。
其他回答
如果你使用http://underscorejs.org,你有: http://underscorejs.org/#isFunction
_.isFunction(callback);
if ('function' === typeof callback) ...
使用函数调用的可选链接,你可以做到以下几点:
function something_cool(text, callback) {
alert(text);
callback?.();
}
如果callback是一个函数,它将被执行。
如果callback为null或未定义,则不会抛出错误,也不会发生任何事情。
然而,如果callback是其他东西,例如字符串或数字,TypeError仍然会被抛出。
这对我很有效
if( cb && typeof( eval( cb ) ) === "function" ){
eval( cb + "()" );
}
我建议以下功能:
function isFunction(name) {
return eval(`typeof ${name} === typeof Function`);
}