`
ayue222
  • 浏览: 48112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript闭包的定义

阅读更多
1、JavaScript函数是被执行的代码和执行它们的作用域的组合。这个代码和作用域的组合在计算机科学著作中被称作:闭包(closure).所有的JavaScript函数都是闭包。然而,这些闭包只在这样使用时才有趣:当一个嵌套的函数被输出到它被定义的作用域之外。只有嵌套函数被如此使用时。才被明确的称为闭包。

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

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


闭包的应用场景

保护函数内的变量安全。
在内存中维持一个变量。
通过保护变量的安全实现JS私有属性和私有方法(不能被外部访问)推荐阅读:http://javascript.crockford.com/private.html
以上3点是闭包最基本的应用场景,很多经典案例都源于此。

分享到:
评论

相关推荐

    JavaScript闭包的定义和理解,含代码示例

    JavaScript闭包的定义和理解,含代码示例

    JAVASCRIPT闭包详解

    闭包是 ECMAScript (JavaScript)最强大的特性之一,但用好闭包的前提是必须 理解闭包。闭包的创建相对容易,人们甚至会在不经意间创建闭包,但这些无意创建的闭包却存在潜在的危害 ,尤其是在比较常见的浏览器环境...

    JavaScript闭包与作用域链实例分析

    本文实例讲述了JavaScript闭包与作用域链。分享给大家供大家参考,具体如下: 闭包定义 闭包指的是有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数A内部创建另一个函数B,那么函数B...

    关于JavaScript闭包的应用

    闭包就是指有权访问另一个函数作用域中的...但是,网上找了好多资料,它们对闭包的定义也各有各样,搞得我也不知道怎么去定义闭包了,所以干脆不去定义了,意会吧。道可道,非常道;名可名,非常名。产生一个闭包创建闭

    Javascript 闭包详解及实例代码

    闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念进行大篇幅描述,直接上干货,让...

    Javascript闭包实例详解

    什么是闭包 闭包是什么?闭包是Closure,这是静态语言所不具有的一个新特性。但是闭包也不是什么复杂到不可理解的东西,简而言之,闭包就是: 闭包就是函数的局部变量集合...理解Javascript的闭包非常关键,本篇试图用最

    javascript闭包(Closure)用法实例简析

    本文实例讲述了javascript闭包(Closure)用法。分享给大家供大家参考,具体如下: closure被翻译成“闭包”,感觉这东西被包装的太学术化。下面参考书本和网上资源简单探讨一下(理解不当之处务请留意)。 1、什么是...

    JavaScript使用闭包模仿块级作用域操作示例

    在阅读这篇文章之前,建议先阅读JavaScript的作用域链以及JavaScript闭包。 正如闭包的定义一样:“闭包指的是有权访问另一个函数作用域中的变量的函数”, 闭包最大的意义就在于闭包可以对另一个函数作用域的变量...

    JavaScript闭包的简单应用

    闭包定义 在JavaScript中,当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。简单说,闭包就是能够读取其他函数内部变量的函数。 闭包的作用: 1. 可以读取函数内部的变量 2. 让这些变量的值始终保持...

    深入解析Javascript闭包的功能及实现方法

    一、什么是闭包和闭包的几种写法和用法  ...简单的说,Javascript允许使用内部函数—即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数

    javascript闭包功能与用法实例分析

    本文实例讲述了javascript闭包功能与用法。分享给大家供大家参考,具体如下: 理解闭包 闭包这个东西,确实是很麻烦。之前我自己的理解也是有一点误差,所以今天将文章修改修改,争取将自己的理解进一步准确化。 ...

    高效使用JavaScript闭包

    使用闭包时,您在一个封闭范围内定义的数据源可供该范围内创建的函数访问,甚至在已经从逻辑上退出这个封闭范围时也是如此。在函数是一等(first-class)变量的语言中(比如JavaScript),此行为非常重要,因为函数的...

    基于javascript 闭包基础分享

    用简单的语句来描述JavaScript中的闭包的概念:由于JavaScript中,函数是对象,对象是属性的集合,而属性的值又可以是对象,则在函数内定义函数成为理所当然,如果在函数func内部声明函数inner,然后在函数外部调用...

    JavaScript中的闭包原理分析

    我们来看一个定义: Closure 所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式...“类是带行为的数据,而闭包是带数据的行为”,在JavaScript中我们用函数的定义代替类的定义,用闭包代替了setter/

    深入理解Javascript闭包 新手版

    我想用如何在Javascript中创建一个闭包来告诉你什么是闭包,因为跳过闭包的创建过程直接理解闭包的定义是非常困难的。看下面这段代码: 代码如下: function a(){ var i=0; function b(){ alert(++i); } ...

    javaScript 利用闭包模拟对象的私有属性

    JavaScript缺少块级作用域,没有private修饰符,但它具有函数作用域。作用域的好处是内部函数可以访问它们的外部函数的参数和变量(除了this和argument

    详解JavaScript作用域 闭包

    JavaScript闭包,是JS开发工程师必须深入了解的知识。3月份自己曾撰写博客《JavaScript闭包》,博客中只是简单阐述了闭包的工作过程和列举了几个示例,并没有去刨根问底,将其弄明白! 现在随着对JavaScript更深入的...

    跟我学习javascript的闭包

    JavaScript 闭包究竟是什么? 用JavaScript一年多了,闭包总是让人二丈和尚摸不着头脑。陆陆续续接触了一些闭包的知识,也犯过几次因为不理解闭包导致的错误,一年多了资料也看了一些,但还是不是非常明白,最近偶然...

Global site tag (gtag.js) - Google Analytics