首页 > 其他分享 >闭包

闭包

时间:2022-11-09 21:22:35浏览次数:35  
标签:闭包 aa outer 函数 私有 变量

一次看透什么是闭包

认识闭包
- 函数的执行空间不会销毁
- 外部函数 返回一个 内部函数
- 内部函数 中使用了 外部函数的私有变量
闭包函数
- 概念
+ 函数内的函数
- 特点:
1. 函数外部可以访问到函数内部的私有变量 ==>(必须通过闭包函数访问)
2. 延长了函数内私有变量的生命周期 ==> (必须要使用闭包函数)
3. 函数执行空间不会销毁 ==> 内存溢出
闭包的作用(闭包有什么用)

    + 解决外部访问不到函数内部变量的问题;
    + 局部变量会常驻在内存中;
    + 避免使用全局变量,造成全局变量污染。

闭包可以让你在一个内层函数中可以访问到外层函数的作用域。

我们在什么情况下使用闭包?
通常当你使用只有一个方法的对象时,可以使用闭包。
为的是创建私有变量,延长变量的生命周期

注意事项

如果不是某些特定任务需要使用闭包,在其它函数中创建函数是不明智的,因为闭包在处理速度和内存消耗方面对脚本性能具有负面影响

例如,在创建新的对象或者类时,方法通常应该关联于对象的原型,而不是定义到对象的构造器中。

原因在于每个对象的创建,方法都会被重新赋值

手写一个闭包 (看好了,我只写一遍)

    function outer(){
    aa = 100
    function inner (){
        return console.log(aa+1)
    }
    return inner
   }
   outer()    //到此出闭包就写完了,此时的outer() 调用的是inner函数,要是想让console.log(aa+1),真正打印还需要再写一行
   
   outer()()  //现在才可以在控制台看到输出的内容 101

标签:闭包,aa,outer,函数,私有,变量
From: https://www.cnblogs.com/maxiaohu/p/16875213.html

相关文章

  • js 闭包和promise
    闭包概述:闭包就是在函数内部返回一个函数,内部函数可以对外部函数的属性和方法进行引用,外部的属性和方法不会被js垃圾回收机制所回收这个结构就称为闭包函数的生命周......
  • javascript基础知识之闭包和递归
    一,什么是闭包,会出现什么问题?如何避免?1、函数里面包含的子函数,子函数访问父函数的局部变量2、通过return将子函数暴露在全局作用域,子函数就形成闭包3、通过闭包,父函数的局......
  • 闭包小知识:闭包实现数据缓存、变量隔离,以及柯里化的使用场景
    缓存什么是缓存函数?接收一个函数,用闭包将每次函数执行的结果缓存起来缓存例子1: /**闭包实现缓存*属性:有个键--值--->所以可以将缓存数据存放在一个对......
  • 细说JavaScript闭包
    JavaScript闭包难点剖析一、作用域基本介绍ES6之前只有全局作用域与函数作用域两种,ES6出现之后,新增了块级作用域1.全局作用域在JavaScript中,全局变量是挂载在windo......
  • 闭包
    1.概念:在函数内部定义一个子函数,并且return该子函数,然后在子函数中return出外部函数需要访问的变量值;这样外部函数就可以访问内部函数中的变量了2.优点:可以让闭包函数......
  • 闭包
    闭包产生的条件1.需要有一个不销毁的函数2.外部函数里面存在着一个直接或者间接的函数3.在内部函数当中需要引用(使用)到外部函数的局部(私有)的变量闭包的特点:1.......
  • js中的闭包
    什么是闭包呢?严格来说要满足四个条件:1.有函数的嵌套2.内部函数引用外部作用域的变量参数3.返回值是函数4.创建一个对象函数,让其长期驻留1functionfa(){2......
  • Java函数式编程:二、高阶函数,闭包,函数组合以及柯里化
    承接上文:Java函数式编程:一、函数式接口,lambda表达式和方法引用这次来聊聊函数式编程中其他的几个比较重要的概念和技术,从而使得我们能更深刻的掌握Java中的函数式编程。......
  • 闭包的实际应用
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......
  • 【笔记09】Javascript - 函数 - 闭包
    【笔记09】Javascript-基本概念-(闭包)内部函数被return 到外部。functiona(){functionb(){varbbb=234;console.log(aaa);}varaaa=......