我是javaScript的初学者,并且正在构建一个项目来修改我的学习内容。我写了下面显示的代码::
for(var i = 0; i<sqrs.length;i++)
{
sqrs[i].addEventListener("click",function()
{
if(sqrs[i].style.backgroundColor === chosenColor )
{
nextMove.textContent = "Correct";
for(var j = 0;j<sqrs.length;j++)
{
sqrs[j].style.backgroundColor = chosenColor;
}
}
else
{
nextMove.textContent = "Try Again!!";
sqrs[i].style.backgroundColor = "rgb(23, 23, 23)";
}
});
}
控制台显示一个错误,指出未定义sqrs[i]
(在匿名函数内部)。但是,当使用this
关键字代替sqrs[i]
时,它可以完美运行。在这种情况下,我应该如何理解addEventListener
函数的范围?