六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 78|回复: 0

JavaScript闭包的定义

[复制链接]

升级  39.33%

31

主题

31

主题

31

主题

秀才

Rank: 2

积分
109
 楼主| 发表于 2013-2-7 19:24:03 | 显示全部楼层 |阅读模式
1、JavaScript函数是被执行的代码和执行它们的作用域的组合。这个代码和作用域的组合在计算机科学著作中被称作:闭包(closure).所有的JavaScript函数都是闭包。然而,这些闭包只在这样使用时才有趣:当一个嵌套的函数被输出到它被定义的作用域之外。只有嵌套函数被如此使用时。才被明确的称为闭包。

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

关于闭包的解释,推荐一篇文章,写的不错:http://www.felixwoo.com/archives/247/


闭包的应用场景

保护函数内的变量安全。
在内存中维持一个变量。
通过保护变量的安全实现JS私有属性和私有方法(不能被外部访问)推荐阅读:http://javascript.crockford.com/private.html
以上3点是闭包最基本的应用场景,很多经典案例都源于此。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表