0

我正在调用这样的函数:

$.myFunction

根据用户可能拥有函数所在的 .js 文件的版本,函数可能无法成功调用,因为它不存在。如果这个函数没有运行,我只想忽略任何抛出的错误并继续执行。一种解决方法是将函数包装在 try/catch 中:

try {
$.myFunction
}
catch(e){
}

但对我来说,以这种方式使用 try/catch 似乎是一种不好的做法。是否有 jQuery/javascript 方法在运行之前检查函数是否存在?

4

3 回答 3

1

在调用它之前检查:

typeof $.myFunction == 'function' && $.myFunction();

有条件地声明函数也很典型:

$.myFunction = $.myFunction || function () { ... };
于 2012-09-07T16:09:52.787 回答
0

我假设您将函数称为

$.myFunction();

你可以测试

if ($.myFunction) {

但是不得不在图书馆这样做有点奇怪。你自己不包括吗?尝试处理任何版本的库,就好像它是完整的一样,似乎很危险。

于 2012-09-07T16:07:55.813 回答
0

您可以使用 jQuery 函数: $.isFunction:

if($.isFunction($.myFunction)) {
    // it exists and it is function
}
于 2012-09-07T16:10:09.423 回答