闭包
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 条评论
回复 删除
下一页