小编Iss*_*lan的帖子

试图理解一个闭包函数

我在谷歌的帮助下做了一个关闭功能.该功能可以正常工作.但是,我不确定它是如何工作的.

function ShowQuestion(i) {
  console.log(i); // here 1 to 10 are logged immediately.
  return function() {
    console.log(i); // here the number are only logged when I mouse over on any li.
  }
}

setTimeout(function() {    
  for (i = 0; i < document.getElementById('Previousli').getElementsByTagName('ul')[0].children.length; i++) {
    document.getElementById('Previousli').getElementsByTagName('ul')[0].children[i].onmouseover = ShowQuestion(i);
  }    
}, 10000);
Run Code Online (Sandbox Code Playgroud)

首先,我想知道为什么第一个console.log(i)在10秒超时后立即记录1到10,但是第二个console.log(i)只有当我鼠标悬停在li上时才记录"index" ?

javascript closures function

3
推荐指数
1
解决办法
62
查看次数

标签 统计

closures ×1

function ×1

javascript ×1