为什么在示例中“for循环”与“let”一起使用,而不是与“var”一起使用?

时间:2017-08-05 21:54:45

标签: javascript for-loop

有人可以向我解释为什么第一个代码总是打印3 第二个代码运作良好?

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true
end

VS

var buttons = document.getElementsByTagName('button');
    for (var i = 0; i < buttons.length; i++) {
      buttons[i].addEventListener('click', function() {
        console.log('You clicked button #' + i);
      });
    }

here is my codepen

1 个答案:

答案 0 :(得分:1)

添加事件侦听器时,您将创建一个引用封闭范围中的Icon a = new ImageIcon("images/a.jpg"); JButton button = new JButton("Something in button", a); 变量的函数。该变量在循环中递增,并且在执行该函数时,您将在循环结束时获得变量的值。

通过在循环内创建另一个变量,您将在循环执行时复制该值。