0

我有一个让我发疯的问题。我有两个看起来相同的事件监听器。正在以相同的范围但在不同的时间被调用。我一直在使用 chromes 调试器工具来单步调试它们。第一个会抛出错误

TypeError: Object 1 has no method 'get'

但是第二个示例 simple 停止执行

el.on("change:one", function() {
  debugger;
  a = 1;
  a.get();
});

el.on("change:two", function() {
  debugger;
  a = 1;
  a.get();
});

我知道简单地询问为什么会发生这种情况可能需要对所有正在使用的库等进行详细解释,所以我的问题是:

是否可以不显示 javascript 引发的错误,以及如何检测是否有某些东西覆盖了错误报告功能

注意:在这两个示例中,我都确定window.onerrornull

4

1 回答 1

0

Backbone 同步调用事件处理程序并且不捕获处理程序异常。因此,如果您的代码如下所示:

el.trigger('change:one'); // handler will throw exception
el.trigger('change:two'); // won't execute

change:two事件永远不会被触发,从而导致您的change:two处理程序永远不会被调用。

于 2013-07-18T01:01:22.993 回答