如何判断是否定义了 JavaScript 函数

2022-08-29 23:49:20

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

我想做这样的事情

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

但它给了我一个

回调不是函数

未定义回调时出错。


答案 1
typeof callback === "function"

答案 2

所有当前的答案都使用文字字符串,如果可能的话,我宁愿在我的代码中没有 - 这不会(并提供有价值的语义含义,引导):

function isFunction(possibleFunction) {
  return typeof(possibleFunction) === typeof(Function);
}

就个人而言,我试图减少代码中徘徊的字符串数量......


另外,虽然我知道这是一个运算符而不是一个函数,但使用使其显示为后者的语法几乎没有害处。typeof