闭包作用:通过创建函数,创建新的作用域
闭包定义:闭包是在另一个函数(成为父函数)中定义的函数,并且可以访问在副函数作用域中声明和定义的变量。
闭包可以访问三个作用域中的变量:1.自己作用域中的2.父函数中的3.全剧作用域中的 闭包的写法有两种方式,一种是函数内部嵌套函数,另一种是函数作为参数传给父函数
function f1(){
var n = 123;
function f2(){ //f2是一个闭包
alert(n)
}
return f2;
}
node中事件驱动编程风格也是利用js闭包辅助进行异步编程
query_finished = function(result){
do_something_with(result);
}
query('SELECT * FROM posts WHERE id = 1', query_finished)
当将一个函数作为参数传递给另外一个进行I/O操作的函数时,回调函数稍后会被调用,在被调用时,回调函数会记住它自身声明时所在的上下文,并且可以访问其父上下文里的所有变量,这个强大的特性是Node成功的核心。