想要创建一个函数,它能够记住数据,但是不必使用全局变量,并且不必对每个函数调用重新发送的数据。
创建一个函数,它接受一个或多个参数,然后创建一个内部函数,它也接受一个或多个参数,但是为了执行其功能,内部函数使用自己的参数及其父函数的参数。从外围函数返回内部函数,并且将其赋值给一个变量。从这一刻起,将该变量当作函数使用。
维持这些从一个函数到另一个函数的数据的一种方法是:
在一个函数内部创建一个函数,让它们都访问该数据,然后,从外围函数返回内部函数。
从一个函数返回一个函数,当返回的函数使用外围的函数的作用域的时候,这称为函数闭包!
闭包的缺点:每次闭包都会占用内存,并且我们创建的闭包越多,使用的内存也越多。如果应用程序作用域释放的时候,内存没有释放,这个问题就会雪上加霜。当这种情况发生的时候,结果就是持久性的内存泄露。
function greet(gretting) {
function addName(name) {
return gretting + name;
}
return addName;
}
var a = greet('Good Day to you');
var b = greet('Good Evening');
console.log(a('binbin'));//Good Day to you binbin;
console.log(b('binbin'));//Good Evening binbin;
网友评论