FWQ
为什么在第二个代码中加入 my_function() 后,按钮点击可以计数,而第一个代码却无法计数?
为何在第二个代码中加入 my_function() 后,按钮点击即可计数 在第一个代码中,当点击按钮时,将执行 my_function() 函数。该函数获取页面上所有按钮的列表,并为每个按钮添加 onclick 事件侦听器。此侦听器创建一个内部函数 myfn,该函数使用闭包捕获当前索引 i。 然而,在第二个代码中,除了添加事件侦听器外,我们还立即调用了 my_function() 函数。这导致 myfn 内部函数被立即执行。这样,每个按钮都拥有了自己的闭包,其中 c 被初始化为 0。因此,当点击按钮时,它将执行内部函数并递增 c。 为什么 button 仍然触发 my_function() 尽管事件侦听器设置为 onclick=’my_function()’, 但它仍然会触发 my_function() 函数。这是因为…