把里面的函数保存到外部
例子1:
注:除了return,只要让里面的函数保存到外部就可以产生闭包。
例子2 闭包累加
普通累加:
不依赖于外部变量累加,
一个独立的功能不依赖于这个体系之外的东西.
例子3 return一个对象
这两个函数写到obj对象里面和外面是一样
例子4 开发常犯的闭包错误
onclik,是给对象加的属性,把函数保存到了li身上。总的来说,把里面的函数保存到了外部
解决:立即执行函数
例子5 字符编码
target.charCodeAt(i) -->target第 i 位字符的编码
或者
例子6 逗号计算符
把后面的表达式计算结果返回
PS:typeof f 不加括号不算错
例子7 —if
if括号添加的是条件,把里面的东西变成表达式。
所以,它就不是函数定义了,从此之后 f 就消失了。
typeof未经声明都会返回undefined(字符串类型),1+ undefined --> NAN