理解 JavaScript 闭包{转载}

来源:互联网 发布:软件接口的英文 编辑:程序博客网 时间:2024/04/20 02:19

【转】http://www.cnblogs.com/chenxizhang/archive/2010/01/02/1638010.html

 

本文转载自:http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html

 

要成为高级 JavaScript 程序员,就必须理解闭包。

本文结合 ECMA 262 规范详解了闭包的内部工作机制,让 JavaScript 编程人员对闭包的理解从“嵌套的函数”深入到“标识符解析、执行环境和作用域链”等等 JavaScript 对象背后的运行机制当中,真正领会到闭包的实质。

原文链接:JavaScript Closures

可打印版:JavaScript 闭包

目录

  • 简介
  • 对象属性名解析
    • 值的赋予
    • 值的读取
  • 标识符解析、执行环境和作用域链
    • 执行环境
    • 作用域链与 [[scope]]
    • 标识符解析
  • 闭包
    • 自动垃圾收集
    • 构成闭包
  • 通过闭包可以做什么?
    • 例 1:为函数引用设置延时
    • 例 2:通过对象实例方法关联函数
    • 例 3:包装相关的功能
    • 其他例子
  • 意外的闭包
  • Internet Explorer 的内存泄漏问题

简介

返回目录

Closure
所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

原创粉丝点击