闭包
2020-04-17 16:25:32 0 举报
AI智能生成
闭包原理及使用
作者其他创作
大纲/内容
闭包作用?
闭包常常用来「间接访问一个变量」
换句话说「隐藏一个变量」
事例:
问题:
做一个游戏,在写其中关于「还剩几条命」的代码
全局变量被修改很不妥
解决:
改用局部代码
问题:
别人访问不到,怎么办?
解决:
暴露一个访问器(函数「间接访问」
简明起见用了中文!!!
就可以使用 window.奖励一条命() 来涨命
使用 window.死一条命() 来让角色掉一条命
分析:
总结:
可以把局部变量驻留在内存中,可以避免使用全局变量
可以访问其他函数内变量的函数
什么是闭包?
事例:
假设上面三行代码在一个立即执行函数中(为简明起见,我就不写立即执行函数了,影响读者理解)
分析:
上面三行代码在一个立即执行函数中
有一个局部变量 local
有一个函数 foo
foo 里面可以访问到 local 变量
闭包这么简单么?
事例:
我听说闭包是需要函数套函数,然后 return 一个函数的呀!
分析:
local 变量和 bar 函数就组成了一个闭包
问题:
为什么要函数套函数呢?
是因为需要局部变量
跟闭包无关系
如果不把 local 放在一个函数里,local 就是一个全局变量了
达不到使用闭包的目的——隐藏变量
为什么要 return bar 呢?
如果不 return,你就无法使用这个闭包
return bar 改成 window.bar = bar 也是一样的
只要让外面可以访问到这个 bar 函数就行了
return bar 只是为了 bar 能被使用
也跟闭包无关
0 条评论
下一页