`
ericxu131
  • 浏览: 189547 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

简单理解闭包概念,大家看看有没有问题

 
阅读更多
被外部函数作为返回值返回的内部函数会保留外部函数的局部变量的特性叫做闭包。

在正常情况下,在外部函数执行完成后,作为外部函数的局部变量v和v2应该已经失效,因为闭包的特性存在,innerMethod1、innerMethod2这两个方法仍然可以访问外部方法的局部变量。

代码如下,欢迎指点 
function outMethod(v){
    var v2="=="
    return function (){
        alert(v2+v+v2);
    }
}

var innerMethod1=outMethod("i am 1");
var innerMethod2=outMethod("i am 2");

innerMethod1();
innerMethod2();
分享到:
评论
3 楼 comasp 2008-06-24  
所有函数 都是闭包。。
2 楼 ericxu131 2008-06-24  
笨笨狗 写道
其实,每个函数运行时,都会产生一个闭包,其最重要的本质就是,可以保持数据……


闭包给我的感觉就是一个函数的内部子函数要是外部对它有引用或调用,这个内部函数还可以使用父函数

的局部变量就说明了形成了一个闭包,这个闭包里面保存的就是父函数的内部变量,给子函数调用使用。


按照你说的话,每个函数都会形成闭包,不同是的普通函数运行结束后会将这个闭包里面的局部变量释放,而有内部函数被外部函数调用或引用的情况下,闭包内的局部变量不会被释放。不知我理解的是否正确。
1 楼 笨笨狗 2008-06-24  
其实,每个函数运行时,都会产生一个闭包,其最重要的本质就是,可以保持数据……

相关推荐

    闭包的理解

    为了更好地理解闭包,我们来看另一个示例: ```javascript (function($) { $.problemWo = function() { this.a = "abc"; }; $.extend($.problemWo.prototype, { myclick: function() { alert(this.a); } }...

    javascript,jquery闭包概念分析

    闭包是JavaScript编程中一个非常重要的概念,它涉及到函数、作用域和变量持久化等多个方面。...尽管闭包的概念可能初看起来有些抽象,但通过实践和理解其工作原理,你可以逐渐掌握这个强大的工具。

    矩阵等价闭包,偏序闭包的求法

    在IT领域,尤其是在离散数学和计算机科学的理论部分,矩阵等价闭包和偏序闭包是两个重要的概念,它们常用于数据结构、图论、逻辑系统以及算法设计等多个方面。下面,我们将深入探讨这两个概念及其求解方法。 首先,...

    Swift语言采用Closure闭包进行传值Demo

    本Demo通过闭包展示了在两个视图控制器之间如何实现反向传值,这与Objective-C(OC)中的Blocks概念有相似之处,但也有其独特之处。 闭包在Swift中的核心概念是它们可以捕获和存储任何常量和变量的引用,即使这些...

    闭包javascript.pdf

    从给定的文件信息来看,主要围绕JavaScript中的闭包概念进行深入探讨。闭包是计算机科学中一个重要的概念,特别是在函数式编程语言中,如JavaScript,它允许一个函数在定义时捕获并记住其周围的环境状态,即使在函数...

    全面理解闭包机制

    深入理解闭包,我们需要了解JavaScript的执行环境、活动对象、作用域和作用域链。每个函数在执行时都有一个与之关联的执行环境,其中包括一个活动对象,用于存放函数的参数、局部变量和函数声明。作用域链则是决定...

    Swift视频教程 基础语法系列 闭包单行间接返回

    Swift是一种由Apple开发的编程语言,它被广泛用于iOS、macOS、watchOS...在学习过程中,通过观看“Swift视频教程 基础语法系列 闭包单行间接返回”,你将对这一核心概念有更深入的理解,从而更好地应用在实际项目中。

    深度探讨javascript函数的原型链和闭包

    在JavaScript中,函数扮演着至关重要的角色,它们不仅仅是代码块,更是数据的一种...理解和掌握这些概念,将有助于编写更加高效、可维护的JavaScript代码。在实际编程中,灵活运用这些特性可以解决许多复杂的编程问题。

    理解javascript函数式编程中的闭包(closure)_.docx

    本篇文章主要探讨JavaScript函数式编程中的一个重要概念——闭包(closure)。闭包是一种特殊的函数,它能记住其...通过深入理解闭包的工作原理,开发者可以更好地掌握函数式编程思想,提高代码的复用性和可维护性。

    javascript 闭包实例下载

    通过阅读这些文件,你可以深入理解闭包的工作原理,并学习如何在实际项目中应用它们。每个HTML文件可能包含一个或多个示例,展示不同的闭包应用场景,比如异步编程、作用域链的使用、函数工厂等。通过学习这些实例,...

    005课-继承作用域闭包.rar

    理解闭包对于优化内存管理和防止意外的全局变量污染至关重要。 **文件内容推测** 从文件名"005课-继承作用域闭包"来看,课程可能包含以下内容: 1. **继承的介绍**:讲解JavaScript中的原型链继承和类继承,包括...

    Swift视频教程 基础语法闭包的定义和表现形式

    Swift是一种由Apple开发的开源...定义和表现形式.mp4”这个视频,你将能够更好地理解Swift中闭包的概念,并掌握如何在实践中应用它们。学习闭包不仅有助于提高代码的复用性,还能帮助你编写更高效、更简洁的Swift代码。

    【JavaScript源代码】详细聊聊浏览器是如何看闭包的.docx

    理解这些基础知识不仅有助于避免常见的内存泄漏问题,还能让我们更高效地利用闭包来解决实际开发中的问题。希望本文能够帮助你建立起对闭包的深刻认识,使其成为你编程工具箱中得心应手的一部分。

    Swift视频教程 基础语法系列 挂尾闭包

    首先,理解闭包的基础概念是必要的。闭包是能够捕获和存储其所在上下文中变量的独立函数。它们可以在代码的任何地方被定义、存储和传递,同时可以访问定义时的作用域内的变量。Swift中的闭包表达式提供了简洁的语法...

    深入理解javascript作用域和闭包

    JavaScript中的作用域和闭包是理解其核心概念的关键。作用域决定了变量的可见性和生命周期,而闭包则是JavaScript中一种独特且强大的特性,允许函数访问并操作其外部作用域的变量,即使在其外部作用域已经结束的情况...

    第九课 闭包-011

    在前端开发中,闭包是一种非常重要的概念,它涉及到JavaScript中的函数、作用域以及内存管理。本节我们将深入探讨匿名函数和闭包,并了解它们在实际应用中的作用。 首先,我们来看匿名函数。匿名函数,正如其名,是...

    浅谈JavaScript for循环 闭包_.docx

    在JavaScript中,for循环和闭包是两个非常重要的概念。本文将对JavaScript for循环和闭包进行浅谈,并提供六种解决方案来解决for循环中的闭包问题。 首先,让我们来看一个例子。我们有一个HTML文件,其中包含五个...

    JavaScript中闭包之浅析解读(必看篇)_.docx

    JavaScript中的闭包是一种重要的编程概念,它涉及到函数和作用域的高级用法。闭包简单来说,就是一个函数能够访问并...在面试或日常开发中,深入理解闭包的原理和应用,无疑能够帮助我们写出更加高效、可维护的代码。

Global site tag (gtag.js) - Google Analytics