是否可以在窗口属性上捕获未定义的引用

Is it possible to catch undefined reference on window property?

本文关键字:未定义 引用 属性 窗口 是否      更新时间:2023-09-26

是否可以在全局(窗口)范围内捕获未定义的引用是浏览器并且需要函数而不是抛出错误并且不将所有函数包装在try-catch中?

例。我有功能

$('#id').on('click', function(){
    a();
})

如果未定义a函数,我只是收到一个错误Uncaught ReferenceError: a is not defined

我想要的是定义一些全局函数来捕获所有此类错误,并且需要所需的文件(基于映射)而不是抛出错误。

我知道在nodejs中可以捕获任何错误,但是在浏览器中可以吗?

你不能只检查类型吗?

if (typeof a !== 'undefined') {
   //execute the function
   a();
} else {
   //do something else
   console.log('not defined'); 
}

我认为if (typeof a == 'function') {...}'会更明确。

以下是有关typeof的更多信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

调用它之前仅仅检查是否存在是不够的?

a && a();