如何避免未捕获的引用错误

时间:2014-04-29 11:52:04

标签: javascript

我有许多页面的常用功能,如下所示

function (){
 resetForm();
 $ajax call
 {
 // some code //
 }
}

现在,如果我没有在对应的js中写入 resetForm() fn,它会给出未应用的引用错误,因为它应该给出,而且我的代码跟在行之后也没有执行。

我写的 resetForm fn()的js文件工作正常,但其他文件没有。

我现在的解决方案是在其他页面中写一个空白的resetForm函数。还有其他方法吗? 谢谢你的帮助

5 个答案:

答案 0 :(得分:4)

您可以查看typeof

if (typeof resetForm === 'function') {
    resetForm()
}
// carry on.

这将检查您是否有一个名为resetForm的函数,如果可以,则执行它。

答案 1 :(得分:3)

您可以检查它是否存在(全局),而不是通过以下方式调用它:

window.resetForm && resetForm();

答案 2 :(得分:0)

以下是一些明显的选择:

  • 像你一样写一个空白函数。
  • typeof resetForm === 'function' && resetForm();
  • 确保只通过更好地模块化代码来加载与当前页面相关的代码。

答案 3 :(得分:0)

只检查是否定义了resetForm

if (resetForm) {
    resetForm();
}

答案 4 :(得分:0)

我知道它不是jquery-tagged问题,但考虑使用jquery的onReady处理程序,它会在加载所有javascript时执行。

//main.js
$(function(){
    resetForm();
});

//functions.js
function resetForm() { .. }

如果resetForm位于单独的j中,并且在resetForm加载后加载,则会正确调用main.js事件。