zoukankan      html  css  js  c++  java
  • JavaScript中闭包函数

    闭包函数:

    闭包是以 匿名函数的形式来实现。

    a. 匿名函数:没有实际名字的函数。

    • console.log(typeof function(){});// "function"  

    • console.log(typeof function(x,y){return x+y;});// "function"  
    • console.log(typeof new Function("x","y","return x*y;"))// "function"  

    var  fn = function(){return 0;}; 匿名函数赋值给fn,fn是一个函数变量

    b.闭包函数是:函数的嵌套,内层的函数可以使用外层函数的所有变量。

    function outer(a){

      var inner = function(){

        return a+1;

      };

      return inner;

    }

    var a = 1;

    var c = outer(1);

    c();//2

    1、内部函数inner使用了外部函数的变量。

    2、outer的返回值inner是一个函数

    3、使用的时候直接加()调用即可

    闭包函数好处:

    1. 保护函数的内部变量安全 
    2. 在内存中维持一个变量,防止被垃圾回收

    function outer(a){

      var inner = function(){
        a+=1;
        return a;

      };

      return inner;

    }

    var a = 1;

    var c = outer(a);

    c();//2

    var b = 1;

    var d = outer(b);

    d();//2

    c();//3

    c();//4

    d();//2

  • 相关阅读:
    css水平垂直居中
    JavaScript提供了哪几种“异步模式”?
    sort()
    后端开发中,可以在Cache-Control设置的常用指令
    纯函数
    react和vue
    npm(classnames) 更灵活使用类名
    shell知多少?
    常见的HTTP状态码
    axios
  • 原文地址:https://www.cnblogs.com/jinling/p/8032657.html
Copyright © 2011-2022 走看看