使用 for 循环将变量添加到具有 javascript/canvas 的实例名称

Use a for loop to add a variable to an instance name with javascript/canvas

我可以将 for 循环与 addEventListener 上的实例一起使用吗?例如,我有以下正确使用名为 'highlightbtn_1' 到 'highlightbtn_5' 的按钮:

this.highlightbtn_1.addEventListener("click", onClick.bind(this));
this.highlightbtn_2.addEventListener("click", onClick.bind(this));
this.highlightbtn_3.addEventListener("click", onClick.bind(this));
this.highlightbtn_4.addEventListener("click", onClick.bind(this));
this.highlightbtn_5.addEventListener("click", onClick.bind(this));

是否可以在按钮实例中使用 for 循环来循环遍历它们,而不是为每个按钮添加单独的 EventListener?类似这样:

    var i;
    for (i = 1; i < 6; i++) {
      this.highlightbtn_[+i].addEventListener("click", onClick.bind(this));
      //Some onClick function
    }

我确实找到了一个 similar topic answered here,但我根本无法提前将它提供给 work.Thank 您以供任何输入!

对象 属性 可以通过两种方式访问​​:

  • obj.propertyName
  • obj['propertyName']

第二种使用表达式的方式。

因此,您可以使用 this['highlightbtn_'+i]

或者将它们重构为一个数组。

或者添加一些 CSS class 并添加公共事件侦听器。