iai*_*ain 9 javascript ruby jquery metaprogramming coffeescript
如果我在字符串中有一个方法名称,在Ruby中我可以send用来动态调度方法,例如
method_name = "delete"
send method_name
Run Code Online (Sandbox Code Playgroud)
我也可以利用插值:
method_name = "add"
send "#{method_name}_task", args
Run Code Online (Sandbox Code Playgroud)
我在javascript中定义了2个函数,一个用于删除,一个用于更新内容.每个按钮都是动态添加的,此时,只有删除方法才会被绑定button.on "click",例如
b.on "click", (event) ->
event.preventDefault() # stop submission via postback
this_button = $(this)
task_id = this_button.data("task-id")
delete_task( task_id, this_button )
false
Run Code Online (Sandbox Code Playgroud)
我希望能够这样做:
method_name = "delete"
b.on "click", (event) ->
event.preventDefault() # stop submission via postback
this_button = $(this)
task_id = this_button.data("task-id")
send "#{method_name}_task", task_id, this_button
false
Run Code Online (Sandbox Code Playgroud)
两个函数的绑定之间的唯一区别是这一行.如果有一个明显的方法,减少重复是有帮助的.我的搜索中没有找到任何内容,所以如果有人能提供帮助,我将不胜感激.
Esa*_*ija 10
method_name = "delete"
obj.send method_name
Run Code Online (Sandbox Code Playgroud)
看起来在Javascript中会是这样的:
methodName = "delete";
obj[methodName]();
Run Code Online (Sandbox Code Playgroud)
你总是需要这个obj,所以如果在红宝石中send method_name是相同的self.send method_name,那么你可以使用this[methodName]().
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |