如下:
var local = 'foo'
function bar() {
console.log(local);
}
「函数」和「函数内部能访问到的变量」(也叫环境)的总和,就是一个闭包。
闭包是js函数作用域的副产品。正是因为js函数内部可以使用外部的变量,所以恰好满足了闭包的定义。
- 常见的”函数套函数“的做法,是为了让local成为局部变量,以达到隐藏变量的目的
-
return bar
或者window.bar = bar
的做法,是为了让函数外部能访问到这个bar函数。
常用于:
- 间接访问一个变量(隐藏变量)
function(){
var lives = 50
window.plus = function(){
lives += 1
}
window.minus = function(){
lives -= 1
}
}()
网友评论