|
|
1
1
除非您有特定的要求,否则模块不需要知道它所提供的函数的名称。当您的模块调用这些函数时,它将通过对它们的直接引用而不是使用它们的名称来执行这些操作。 例如:
注意,调用者直接提供对模块的函数引用,然后模块使用这些引用——而不关心甚至不关心 知道 这些函数的名称。(是的,您可以通过检查函数引用来获取它们的名称,但是为什么要麻烦呢?) 如果你想要一个更深入的答案或解释,它将有助于了解你的情况。您的库的目标环境是什么:浏览器?点头?电子?反应自然?
“在特定时间”向我暗示了一些松散的基于事件的东西。所以,根据你的目标平台,你可以使用真正的EventEmitter。在这种情况下,您应该为每个应该调用函数的时间创建唯一的名称,然后您的模块将导出一个单例发射器。然后,调用者将为他们关心的每个事件分配事件处理程序。对于呼叫者来说,可能是这样的:
处理此问题的一种更为简单的方法是调用方提供函数字典:
如果你不喜欢和EventEmitter一起工作,这可能很吸引人。但是走这条路需要考虑如何支持其他场景,比如调用方希望删除函数和延迟注册。
演示如何使用的快速草图
注意,这个模块仍然不知道调用者为这些函数分配了什么名称。在这个范围内,每个例程都有一个绰号“fn” 我感觉到你对执行的工作方式有一些误解,这让你相信程序的各个部分需要知道程序其他部分的名称。但这不是延续传递风格的工作方式。 由于您是基于特定时间触发调用方函数,因此事件模型可能非常适合。下面是一个大概的情况:
要做到这一点,你可以做一些像。。。
(
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 11 月前 |
|
|
Niobos · 如何/是否有方法使通用算法函数同时与同步和异步函数一起工作? 11 月前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 11 月前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 11 月前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 11 月前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 11 月前 |