闭包

来源:4-2 闭包

诺巴蒂

2019-11-06

  • 函数作为返回值
  • 函数作为参数
    闭包的情况只有这两种吗,感觉一个函数只要用了自己里面没有的变量(自由变量),是不是都可以叫闭包
    比如:timer 也是个闭包
for (var i = 1; i <= 5; i++) {
  (function(j) {
    setTimeout(function timer() {
      console.log(j)
    }, j * 1000)
  })(i)
}

还有 setTimeout 的第三个以后的参数也可以解决 a 标签点击弹出序号的问题,这样回答会不会不符合面试官用意。。。

for (var i = 1; i <= 5; i++) {
  setTimeout(
    function timer(j) {
      console.log(j)
    },
    i * 1000,
    i
  )
}
写回答

1回答

双越

2019-11-06

第一,你这么理解闭包也没有问题。其实概念不重要,知道应用场景就好。

第二,不要去找一些怪异的回答方式,要符合主流。

1
1
诺巴蒂
非常感谢!
2019-11-06
共1条回复

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程