1.访问闭包的两种方法:
方法1:
function hello(){
return function(){
return (console.log('我是方法1'))
}
}
hello()()
打印出//方法1
方法2:
function hello(){
return function(){
return (console.log('我是方法2'))
}
}
var star = hello()
star()
2.闭包的两个用途
1.通过闭包来访问局部变量
例如:
function hello(){
var name = "张三"
return function(){
return (name)//通过匿名函数访问hello中的局部变量
}
}
var star = hello()
console.log(star()) //打印出 张三
2.可以让局部变量保存在内存中
优点:可以避免使用全局变量
缺点:占内存,降低性能
看下面代码:
function hello(){
var name = 1
return function(){
return (name++)//通过匿名函数访问hello中的局部变量
}
}
console.log(hello()()) //1
console.log(hello()()) //1
调用方法1的数字无法累加,都是1
调用方法2的方法
function hello(){
var name = 1
return function(){
return (name++)//通过匿名函数访问hello中的局部变量
}
}
var star = hello()
console.log(star()) //1
console.log(star()) //2
方法2可以累加
分析:
方法1中函数执行每次都会初始化
方法2中函数执行是执行返回中的匿名函数
833

被折叠的 条评论
为什么被折叠?



