我有一个Ember对象有几个动作:
MyObject = Ember.Object.extend {
action1: ->
console.log "do 1"
action2: ->
console.log "do 2"
}
我想根据某些情况调用其中一个动作。简单的方法是
检查此情况并使用if
或switch-case
调用所需条件。但是,我需要一些更具可伸缩性的东西,比如我的对象中的方法哈希,并通过发送他们的名称来调用所需的方法,如object.exec('action1')
。
ember对象是否已具有此功能?
答案 0 :(得分:0)
这是javascript中动态方法调用方法的快速实现。
var obj = {
action1 : function(item) {
return item;
},
action2 : function(item) {
return item;
},
exec:function(name){
if(this[name] ==== 'undefined') return;
var args = Array.prototype.slice.call(arguments);
return this[name](args.slice(1,args.length))
}
}
obj.exec('action1','Hello')
obj.exec('action2','World')
Should return Hello World