首页 > 解决方案 > 我怎么能传递一个 JavaScript 函数而不直接说出它的名字呢?

问题描述

假设我有一百个函数和一百个 HTML 按钮,我想将它们全部分配给它们的点击事件。

我可以将它们命名为 button1, button2, button3, ... 和 function1, function2, function3 ...

然后说:

let btsn = document.getElementsByClassName("mybuttons");
for (int i = 0; i < 100; i++) {
    btns[i].addEventListener("click", "function" + i);
}

当然这不起作用,因为字符串文字没有被翻译成对函数的实际引用,只是我随机说出它的名字而被遗忘了。

但是有什么方法可以让我实现这一点,就好像那是可能的一样?


编辑:

我正在寻找的确切功能可以通过将函数放在数组中来完成。

let funcs = [
    function a() { ; }
    function b() { ; }
    function c() { ; }
    function d() { ; }
    function e() { ; }
]
let btsn = document.getElementsByClassName("mybuttons");
for (int i = 0; i < 100; i++) {
    btns[i].addEventListener("click", funcs[i]);
}

标签: javascriptstringfunctionreference

解决方案


推荐阅读