以多态方式调用函数

时间:2016-03-21 22:29:02

标签: javascript meteor

此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

1 个答案:

答案 0 :(得分:4)

这方面的事情怎么样: 将函数存储在对象中

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

检索功能

fn = fCollection[getActiveTask()]

执行功能

fn()

或一气呵成

fCollection[getActiveTask()]()