Javascript 事件和调用,何时使用和何时不使用?

Javascript 事件和调用,何时使用和何时不使用?,javascript,function,events,dom-events,Javascript,Function,Events,Dom Events,我有三个功能:A、B和C。A需要运行B才能工作。C有时需要在A上运行,但并不总是存在。在函数c的情况下使用事件是否正确?如果没有,什么才是正确的做法。最后,事件是否明显比标准调用慢/不可靠 function a() { //Do stuff b(); alert([Var]); var event = new Event('a'); document.dispatchEvent(event); } function b() { var

我有三个功能:A、B和C。A需要运行B才能工作。C有时需要在A上运行,但并不总是存在。在函数c的情况下使用事件是否正确?如果没有,什么才是正确的做法。最后,事件是否明显比标准调用慢/不可靠

function a() {
     //Do stuff
     b();
     alert([Var]);
     var event = new Event('a');
     document.dispatchEvent(event);

}
function b() {
    var Var = "a ran";
}
document.addEventListener('a',function c() {
    console.log("a ran");
}, false);

我不记得在哪里,但我读过一篇关于事件驱动编程的有趣比喻。
在篮球场上,有多种方法保持记分牌。
当球穿过吊环时,球可以通过向每个记分板发送消息来更新所有记分板。
然而,记分牌订阅活动更有趣。
这样,球不关心有多少听众,它只需要发射事件

事件驱动编程是一种选择。
您可以在函数c或函数a中创建一个条件,从中可以调用函数c。
我认为这取决于上下文;记住篮球的故事会给你一个环境,你需要做出自己的决定

文档事件在逻辑上会慢一些,但我还没有看到任何基准测试。

如果页面上没有过多的事件侦听器,我相信这不会是一个问题

使用事件的缺点是代码更难理解,在基于类的语言(如Swift或Java)中,您会注意到这一点。如果您只是发送一个事件,那么如果代码属于一个大型项目,您无法直接在代码中看到您将影响哪些功能

如果您将代码拆分到不同的文件中(如果您使用的是框架,您将执行此操作),那么仅通过查看代码就很难看到触发方法
C

我个人试图设计尽可能可读的代码,但这只是我的选择。如果可能的话,我会尽量避免事件发生,但主要使用聚合物,这是一项不可能完成的任务。:)我们尝试将事件限制为仅在它们属于特定功能时使用它们,例如处理帐户信息,其中事件的名称严格说明它来自哪个行为(“类”)