1. 首页
  2. 编程语言
  3. Javascript
  4. Javascript学习笔记之 函数篇(三) : 闭包和引用

Javascript学习笔记之 函数篇(三) : 闭包和引用

上传者: 2021-05-08 16:28:26上传 PDF文件 60.52 KB 热度 10次

因为 Javascript 没有块级作用域,只有函数作用域,所以闭包的使用与函数是紧密相关的。这里 Counter 返回两个闭包:函数 increment 和 get。由于 Javascript 不可以对作用域赋值和引用,所以在上例中,是没有办法在外部直接访问内部私有变量 count。唯一的方法就是通过定义闭包来访问。上面的代码不会改变 Counter 作用域内的 count 变量值,因为 hack 没有在 Counter 内定义。上面这段代码不会输出0到9,而是连续输出10次10。为了复制循环中变量的值,最好的方式是在外层加一个匿名的立刻执行函数。这个外部的匿名函数接收循环变量 i 作为第一个参数,并将其值拷贝至它自身的参数 e。还有另外一个方法可以实现同样的效果,就是在 setTimeout 内的匿名函数中再返回一个匿名函数:此外,通过 bind 方法也可以实现。

下载地址
用户评论