Closure在加载时激活,而不是复选框更改

时间:2016-05-11 18:51:45

标签: javascript closures

我试图将onchange事件附加到由js。

创建的复选框

我终于让封闭在for循环中工作,但现在它在加载时而不是在更改时激活。

为什么会这样?

https://jsfiddle.net/dkrh587h/2/

  chkbox.addEventListener("change", (function(newVarA, newVarB, newVarC, newVarD) {
    searchMap(newVarA, newVarB, newVarC, newVarD);
  }(gblStatus, "Status", statuser, chkbox.checked)), false);

1 个答案:

答案 0 :(得分:2)

这是因为您使用额外的括号调用作为wprintf (L"Character: %lc %lc \n", L'ঈ', 2440); 的第二个参数传递的函数。

这有时称为self-executing函数:

addEventListener

function() { // will get invoked immediately }(); 之类的变量将因为闭包而在你的回调中可用(假设它们是在函数范围内声明的,"包含"你发布的代码)。

这样的模式应该有效:

statuser