我想在尝试运行之前检查函数是否存在。这是我的代码:
if ($.isFunction(myfunc())) {
console.log("function exist, run it!!!");
}
然而,当该功能不可用时,我收到错误:
myfunc未定义
我该如何进行检测?这是我的工作测试:http://jsfiddle.net/3m3Y3/
答案 0 :(得分:132)
将()
放在函数名后面,实际上是在第一行中尝试运行它。
相反,您应该只使用函数名称而不运行它:
if ($.isFunction(myfunc)) {
然而 - 如果myfunc
不是函数且不是任何其他已定义的变量,则仍会返回错误,尽管它不同。类似于myfunc is not defined
。
您应检查名称是否存在,然后检查它是否为函数,如下所示:
if (typeof myfunc !== 'undefined' && $.isFunction(myfunc)) {
这里的工作示例:http://jsfiddle.net/sXV6w/
答案 1 :(得分:13)
试试这个
if(typeof myfunc == 'function'){
alert("exist");
}else{
alert("not exist");
}