1. 首页
  2. 编程语言
  3. Javascript
  4. javascript中闭包closure的深入讲解

javascript中闭包closure的深入讲解

上传者: 2021-07-14 12:16:51上传 PDF文件 108.99 KB 热度 27次

myFunc中访问了parentFunction中的address变量,虽然parentFunction已经执行完毕返回。通过传递不同的x参数,我们得到了不同的基数的add方法。闭包的Scope Chain对于每个闭包来说,都有一个作用域范围,包括函数本身的作用域,父函数的作用域和全局的作用域。我们的本意是,不同的id触发不同的help消息。因为onfocus是在闭包创建完毕之后才会触发,这个时候item的值实际上是变化的,在循环结束之后,item的值已经指向了最后一个元素,所以全部显示的是最后一条数据的help消息。还有一种方法就是将item包含在一个新的function作用域范围之内,从而每次创建都是新的item,这个和let的原理是相似的:第二个常见的问题就是内存泄露。只要childFunction还在被使用,a就无法被释放,从而导致parentFunction无法被垃圾回收。

用户评论