`
ericxu131
  • 浏览: 188391 次
  • 性别: 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  
其实,每个函数运行时,都会产生一个闭包,其最重要的本质就是,可以保持数据……

相关推荐

    JS中的闭包理解。。。。。。。。

    看上去函数“记住”了外部环境,但其实上是这个函数有个指向外部环境的引用。这就是“闭包”的概念。 • 每当外部封闭函数执行的时候就产生了闭包,也就是说闭包的创建并不一定需要内部函数返回。 • JavaScript中...

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

    今天打算换个角度来理解闭包,从内存分配与回收的角度阐述,希望能帮助你真正消化掉所看到的闭包知识,同时也希望本文是你看的最后一篇关于闭包的文章。 大家看本文中的配图时,请牢记箭头的指向。因为它是根

    javascript,jquery闭包概念分析

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

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

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

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

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

    全面理解闭包机制

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

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

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

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

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

    javascript 闭包实例下载

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

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

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

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

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

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

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

    第九课 闭包-011

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

    浅谈JavaScript for循环 闭包_.docx

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

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

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

    等价闭包,等价类,哈斯图实现

    等价闭包、等价类和哈斯图是计算机科学中的重要概念,尤其在图论、数据结构和算法设计中有着广泛的应用。接下来,我们将详细探讨这三个概念,并结合MFC(Microsoft Foundation Classes)的实现来深入理解它们。 ...

    js代码-JS闭包以及优化

    理解了闭包的工作原理后,我们来看看如何优化闭包的使用: 1. **避免内存泄漏**:由于闭包会保留对外部变量的引用,如果不再需要这些变量,应确保它们被清除,否则可能导致内存泄漏。 2. **合理使用闭包**:不是...

    JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解

    很早就接触过闭包这个概念了,但是一直糊里糊涂的,没有能够弄明白JavaScript的闭包到底是什么,有什么用,今天在网上看到了一篇讲JavaScript闭包的文章(原文链接),讲得非常好,这下算是彻底明白了JavaScript的闭包...

    js的闭包的一个示例说明

    闭包是JavaScript编程中一个非常重要的概念,它涉及到函数、作用域...理解闭包对于编写高效且无副作用的JavaScript代码至关重要。不过,如果不正确地使用闭包,可能会导致内存泄漏或意外的变量共享,因此需要谨慎处理。

    Javascript闭包用法实例分析

    提到闭包,想必大家都早有耳闻,下面说下我的简单理解。 说实话平时工作中实际手动写闭包的场景并不多,但是项目中用到的第三方框架和组件或多或少用到了闭包。 所以,了解闭包是非常必要的。呵呵… 一、什么是闭包 ...

Global site tag (gtag.js) - Google Analytics