Javascript 以多态方式调用函数

Javascript 以多态方式调用函数,javascript,meteor,Javascript,Meteor,此Meteor应用程序有一个按钮,单击该按钮时需要调用特定功能。还有一个ActiveTaskCollection用于存储activeTask字段,该字段在应用程序生命周期内发生变化 我正试图找到一种机制,根据activeTask值启动正确的函数,而不必为它可能包含的每个值编写长条件语句。 但仅在按钮单击事件上启动函数,而在activeTask更改时不进行响应 这是我的大脑“转储”,如何实现?谢谢 function a (){console.log{'a'}} function b (){cons

此Meteor应用程序有一个按钮,单击该按钮时需要调用特定功能。还有一个
ActiveTaskCollection
用于存储
activeTask
字段,该字段在应用程序生命周期内发生变化

我正试图找到一种机制,根据activeTask值启动正确的函数,而不必为它可能包含的每个值编写长条件语句。
但仅在按钮单击事件上启动函数,而在activeTask更改时不进行响应

这是我的大脑“转储”,如何实现?谢谢

function a (){console.log{'a'}}
function b (){console.log{'b'}}

activeTask: 'a'
function.call(Col.findOne({last document}).activeTask);  // invokes function a
activeTask: 'b'
function.call(Col.findOne({last document}).activeTask);  // invokes function b

朝这个方向做点什么怎么样: 在对象中存储函数

fCollection = {}
fCollection.a = function(){console.log('a')}
fCollection.b = function(){console.log('b')}
检索函数

fn = fCollection[getActiveTask()]
fn()
执行函数

fn = fCollection[getActiveTask()]
fn()
还是一次性的

fCollection[getActiveTask()]()

朝这个方向做点什么怎么样: 在对象中存储函数

fCollection = {}
fCollection.a = function(){console.log('a')}
fCollection.b = function(){console.log('b')}
检索函数

fn = fCollection[getActiveTask()]
fn()
执行函数

fn = fCollection[getActiveTask()]
fn()
还是一次性的

fCollection[getActiveTask()]()

选择正确函数的条件是什么?@MikeC存储在ActiveTaskCollection的activeTask字段中的值是唯一的条件。请记住,我希望避免编写长条件语句的if或switch块。:)什么是
activeTask
?这是一个字符串、对象、数字吗?@MikeC-activeTask是一个字符串,正如我帖子的代码所建议的:)我想我错过了这个,哈哈。在这种情况下,Alftan给出了一个奇妙的答案。选择正确的函数需要什么样的条件?@MikeC存储在ActiveTaskCollection的activeTask字段中的值是唯一的条件。请记住,我希望避免编写长条件语句的if或switch块。:)什么是
activeTask
?这是一个字符串、对象、数字吗?@MikeC-activeTask是一个字符串,正如我帖子的代码所建议的:)我想我错过了这个,哈哈。在这种情况下,阿尔芬比有一个奇妙的答案。