闭包形成的条件:
- A函数里包含B函数
- B函数操作A函数里的变量
- A函数的返回值包含了B函数
PS:(A函数是外部函数 , B函数是内部函数)
function handle(){
var word = "Hello World!"
function toUpperStr(){ //转大写
console.log("toUpperStr() :" + word.toLocaleUpperCase())
}
function toLowerStr(){ //转小写
console.log("toLowerStr():" + word.toLocaleLowerCase())
}
return {
toUpperStr:toUpperStr,
toLowerStr:toLowerStr
}
}
handle().toLowerStr() //输出: toLowerStr():hello world!
闭包的优势与劣势
1.函数外无法直接访问函数内的变量
2.函数执行完后外部函数不回收,所以A函数中的变量(word)保存在内存中 ,因此使用闭包过多会带来性能问题
网友评论