Open Alice52 opened 4 years ago
定义: 闭包是指有权访问另一个函数B作用域中的变量的函数让这些变量始终保存在内存中,不会随着函数的结束而自动销毁。
访问另一个函数B作用域中的变量的函数
定义: 如果一个函数访问了此函数的父级及父级以上的作用域变量,就可以称这个函数是一个闭包。
闭包是可以在函数A的外部访问到其作用域中的变量的函数B
被访问的变量可以和被访问的函数B一同存在; 即使被访问的函数B已经运行结束,导致创建变量的环境销毁,变量也依然会存在,直到访问变量的那个函数A被销毁闭
闭包只能取得包含函数中任何变量的最后一个值: 因为别忘了闭包所保存的是整个变量对象,而不是某个特殊的变量
闭包作为参数传递: 不是立即执行函数中的num,而是取创建函数的作用域中的num
不是立即执行函数中的num,而是取创建函数的作用域中的num
var num = 15; var fn1 = function(x) { // num is the value set when create this function // rather than setted when called scope // so num is 15 if(x > num) { console.log(x); } } void function(fn2) { var num = 100; fn2(30) }(fn1)
定义: 闭包是指有权
访问另一个函数B作用域中的变量的函数
让这些变量始终保存在内存中,不会随着函数的结束而自动销毁。定义: 如果一个函数访问了此函数的父级及父级以上的作用域变量,就可以称这个函数是一个闭包。
闭包是可以在函数A的外部访问到其作用域中的变量的函数B
被访问的变量可以和被访问的函数B一同存在; 即使被访问的函数B已经运行结束,导致创建变量的环境销毁,变量也依然会存在,直到访问变量的那个函数A被销毁闭
闭包只能取得包含函数中任何变量的最后一个值: 因为别忘了闭包所保存的是整个变量对象,而不是某个特殊的变量
闭包作为参数传递:
不是立即执行函数中的num,而是取创建函数的作用域中的num
reference