在Javascript / Coffeescript / jQuery中有没有相当于Ruby的发送?

前端之家收集整理的这篇文章主要介绍了在Javascript / Coffeescript / jQuery中有没有相当于Ruby的发送?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有一个字符串中的方法名,在 Ruby中我可以使用send来动态调度方法,例如
method_name = "delete"
send method_name

我也可以利用插值:

method_name = "add"
send "#{method_name}_task",args

我有两个定义在javascript中的函数,一个要删除,一个更新一些.每个的按钮都是动态添加的,目前只有删除方法通过button.on“点击”绑定.

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

我想要这样做:

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

两个功能的绑定之间的唯一区别是这一行.如果有一个明显的方法,减少重复将是有帮助的.我没有找到任何东西在我的搜索,所以如果有人可以帮助它将不胜感激.

解决方法

你需要使用 bracket notation
b.on("click",window[method_name](event))

猜你在找的jQuery相关文章