jQuery isFunction检查错误"函数未定义"

use*_*781 49 jquery function

我想在尝试运行之前检查函数是否存在.这是我的代码:

if ($.isFunction(myfunc())) {
    console.log("function exist, run it!!!");
}
Run Code Online (Sandbox Code Playgroud)

但是,当该功能不可用时,我收到错误:

myfunc未定义

我怎样才能进行检测?这是我的工作测试:http://jsfiddle.net/3m3Y3/

jcs*_*nyi 135

通过添加()函数名称,您实际上是在第一行中尝试运行它.

相反,您应该只使用函数名称而不运行它:

if ($.isFunction(myfunc)) {
Run Code Online (Sandbox Code Playgroud)

但是 - 如果myfunc不是函数而且不是任何其他已定义的变量,这仍将返回错误,尽管它是一个不同的错误.有点像myfunc is not defined.

你应该检查名称是否存在,然后检查它是否是一个函数,如下所示:

if (typeof myfunc !== 'undefined' && $.isFunction(myfunc)) {
Run Code Online (Sandbox Code Playgroud)

这里的工作示例:http://jsfiddle.net/sXV6w/

  • 这对jQuery依赖插件不起作用,`if(!! $ .prototype.functionName)`对我有用,查看答案[这里](http://stackoverflow.com/questions/5108832/jquery-test-for - 是否-AN-对象具有-A-方法) (8认同)

use*_*160 13

试试这个

if(typeof myfunc == 'function'){
    alert("exist");
}else{
    alert("not exist");
}
Run Code Online (Sandbox Code Playgroud)