闭包

2019-10-07  本文已影响0人  楼水流云

什么是闭包 函数引用外部变量就是闭包
1
var local = '闭包'
function foo(){
console.log(local)
}

2
var fn = function(){
var a = {name:a}
return function(){
return a
}
}()
console.log(fn())

解决方法 使用立即执行函数 立即执行函数的结果是一个函数 把所有步骤函数都拆开

function(j){
console.log(j)
}(a)

闭包有什么作用:暴露局部变量,把局部变量通过函数暴露给外面
外面变量访问不到函数里的局部变量 但是可以通过内部函数操作局部变量 再return出去

面试题:
var items = document.querySelectorAll('li')

for(var i = 0; i < items.length; i++){
var temp = function(j){
console.log(j)
}
temp(i)这里把每次循环的i传进来了

items[i].onclick = function(){
    console.log(i)
}

}

上一篇下一篇

猜你喜欢

热点阅读