Javascript 返回奇数错误的JSHint

Javascript 返回奇数错误的JSHint,javascript,jshint,Javascript,Jshint,我有下面的脚本,我是在stacks上的人的帮助下创建的,用于创建计算器和相应地更新DOM。我最近把我的编辑器改成了一个有JSHint的编辑器。我给了我一些可能性错误,我希望有人能提供洞察 主要的一个是“不要在循环中使用生成函数”,它指的是.addEventListener数组推送。为什么这是一个问题,为什么我要这样做 var currentFunction = []; function pushToArray(v){ currentFunction.push(v);

我有下面的脚本,我是在stacks上的人的帮助下创建的,用于创建计算器和相应地更新DOM。我最近把我的编辑器改成了一个有JSHint的编辑器。我给了我一些可能性错误,我希望有人能提供洞察

主要的一个是“不要在循环中使用生成函数”,它指的是.addEventListener数组推送。为什么这是一个问题,为什么我要这样做

var currentFunction = [];

    function pushToArray(v){
      currentFunction.push(v);
      addtoScreen(v);

    }

    function addtoScreen(vTag){

      var screen = document.getElementById("screen");

      if(currentFunction.length == 1){
        var newCalc = document.createElement("p");    
        newCalc.className = "calc";

        var opInt = document.createElement("span");
        opInt.innerHTML = vTag;

        newCalc.appendChild(opInt);
        screen.appendChild(newCalc);
      }else if(vTag == "="){
        var opInt = document.createElement("span");
        opInt.innerHTML = vTag;

      }else{
        var opInt = document.createElement("span");
        opInt.innerHTML = vTag;

        newCalc = screen.lastChild;

        if(newCalc){
          newCalc.appendChild(opInt);
        }else{
         screen.appendChild(opInt);   
        }
      }
    }

    var numbers = document.getElementsByTagName("button");

    for(var i = 0; i < numbers.length; i++){
      if(numbers.item(i).id != "equalButton"){
        numbers.item(i)
          .addEventListener("click", function(){pushToArray(this.value);});
      }
    }
var currentFunction=[];
功能推送阵列(v){
当前功能推送(v);
添加屏幕(v);
}
功能添加至屏幕(vTag){
var screen=document.getElementById(“screen”);
如果(currentFunction.length==1){
var newCalc=document.createElement(“p”);
newCalc.className=“calc”;
var opInt=document.createElement(“span”);
opInt.innerHTML=vTag;
新计算附件(opInt);
screen.appendChild(newCalc);
}否则,如果(vTag==“=”){
var opInt=document.createElement(“span”);
opInt.innerHTML=vTag;
}否则{
var opInt=document.createElement(“span”);
opInt.innerHTML=vTag;
newCalc=screen.lastChild;
如果(新计算){
新计算附件(opInt);
}否则{
屏幕。追加子对象(opInt);
}
}
}
变量编号=document.getElementsByTagName(“按钮”);
对于(变量i=0;i
如果函数在循环中,则每次迭代都会构造该函数。在循环外声明函数并在循环内调用它。
或者可以为jshint-ignore添加loopfunc:true标记

当我把它写成“.addEventListener('click',pushToArray(this.value))”时,它不起作用。那么正确的写作方式是什么呢?