js闭包

作者: 码农农民的农 | 来源:发表于2018-09-05 21:33 被阅读0次

闭包的定义

    闭包就是能够读取其他函数内部变量的函数

闭包的特性

    封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;

    持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然保存在。

闭包的优缺点

    缺点:由于闭包携带包含它函数的作用域,因此比其他函数占用的内存更多。

    优点:减少创建全局变量 减少传递给函数的参数量 封闭性

闭包有如下应用特征:

      1.局部变量:在函数中定义有共享意义的局部变量(定义成全局变量会造成全局污染);

     2.内嵌函数:在函数中申明有内嵌函数,内嵌函数对函数中的局部变量进行访问;

     3.外部使用:函数向外返回此内嵌函数,外部可通过此内嵌函数持有并访问申明在函数中的局部变量,而此变量在外部是通过其他路径无法访问的;

闭包的结构

    function a(){

        var value = 1; // 局部变量

        function b(){  //内嵌函数

            alert(value );

        }

        return b;  // 返回内嵌函数

    }

    var c = a();

    c(); // 外部使用

    根据定义a函数里面的b函数叫闭包,但是要获取到这个b函数 就必须在a函数里面返回b函数。

    上面c函数指向的就是这个b函数。

    调用c函数就可以弹出a函数里面的局部变量value的值。

相关文章

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • JS闭包

    JS闭包 闭包练习

  • JS闭包问题(二)

    在之前的JS闭包问题(一)文章中大概介绍了一下JS闭包,同时讲了闭包与变量之间的问题,今天我们继续聊闭包,聊聊闭包...

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

  • JS闭包入门

    最近有看到朋友的面经里提到的JS闭包的问题,就想研究研究,以下是我对JS闭包的简单理解。 到底什么是JS闭包? 定...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

  • 简单的聊一下闭包

    js中的闭包 闭包是学习js中永远也绕不过去的一个坎,那么,今天我们就去一段简单的代码开始聊一聊闭包 什么是闭包 ...

  • 浅谈闭包

    js中的闭包 闭包是学习js中永远也绕不过去的一个坎,那么,今天我们就去一段简单的代码开始聊一聊闭包 什么是闭包 ...

  • 闭包??

    什么闭包,闭包有什么用?http://js.jirengu.com/pogadikofa/1/闭包是在某个作用域内...

网友评论

      本文标题:js闭包

      本文链接:https://www.haomeiwen.com/subject/nepzwftx.html