gpt4 book ai didi

javascript - 在 Javascript/Coffeescript/jQuery 中是否有与 Ruby 的发送等效的东西?

转载 作者:可可西里 更新时间:2023-11-01 02:55:13 26 4
gpt4 key购买 nike

如果我在字符串中有一个方法名称,在 Ruby 中我可以使用 send 来动态调度方法,例如

method_name = "delete"
send method_name

我也可以利用插值:

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

我在 javascript 中定义了 2 个函数,一个用于删除,一个用于更新。每个按钮都是动态添加的,目前,只有 delete 方法通过 button.on "click" 绑定(bind),例如

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

两个函数的绑定(bind)之间的唯一区别是这一行。如果有明显的方法,减少重复会很有帮助。我在搜索中没有找到任何东西,所以如果有人能提供帮助,我将不胜感激。

最佳答案

method_name = "delete"
obj.send method_name

在 Javascript 中看起来像这样:

methodName = "delete";
obj[methodName]();

虽然你总是需要 obj,所以如果在 ruby​​ 中 send method_nameself.send method_name 相同,那么你可以使用 this[methodName]().

关于javascript - 在 Javascript/Coffeescript/jQuery 中是否有与 Ruby 的发送等效的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17804935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com