<script>
var ta = (function(){//定义一个闭包匿名函数。
return function(){//返回匿名函数内部的匿名函数给ta
alert('1')
}
})()
ta()//执行ta,弹出信息1
</script>
补充:
闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。这种写法就是闭包的写法,闭包内部的函数如果不是return方式,在外部无法获取,无法进行调用。
为了避免混淆改下变量名:
function foo(func, val) {return func(val)
}
function bar(val) {
return val + 10
}
console.log( foo(bar, 20) ) //30
首先执行foo(bar, 20), foo有参数func和val, 于是func的值是bar, val的值是20
然后foo里会执行func(val), 于是实际上是bar(20), 于是返回30
然后foo再把func(val)的返回值返回, 也就是30