zoukankan      html  css  js  c++  java
  • 闭包的简单应用

    JavaScript的闭包

    变量的作用域:

    每个函数来定义作用域,函数内部用var来声明的,他们的作用域只在本函数内有用。函数可以用来创造函数作用域。此时的函数像一层半透明的玻璃,在函数里面可以看到外面的变量,而在函数外面无法看到函数里的变量。

    我们先来看一个例子,在例子中我们定义了三个函数,分别是funa ,funb,func,在每个函数里我们都用 var 独自声明了一个变量,然后进行打印。(代码)

    var funa = function(){
        var a = "sakura";
        console.log("I am "+a);
    }
     
    var funb =function(){
        var b = "naruto";
        console.log("I am "+b);
    }
     
    var func= function(){
        var c= "sasuke";
        console.log("I am "+c);
    }
    funa();
    funb();
    func();

    这时我们用node 运行程序是没有问题的!但是如果我们钥匙把变量 a  ,在funb 函数里打印,程序就会报错.(代码如下)

    var funb =function(){
        var b = "naruto";
        console.log("I am "+b);
        console.log(a);
    }

    如果这个例子我们理解了,那我们再来看一个更为复杂的例子。例子里先定义了 func1 函数,然后又在 func1 函数里定义了 func2 ,然后再func1里打印func2里的一个变量,这时是找不到变量的,程序会报错。

    var a = 1;
    var func1= function(){
        var b=2;
        var func2 = function(){
            var c= 3;
            console.log(b);//可以找到
            console.log(a);//可以找到
        }
        func2();
        //下面的c是找不到的。
        console.log(c);
    }
    func1();

    简单的闭包函数

  • 相关阅读:
    ElasticSearch 基础<转载>
    计算文本相似度方法总结(一)
    Java入门1---关键字、标识符、变量、运算符、流程控制、数组
    IntelliJ IDEA安装
    java代码转python代码
    python2和python3切换
    在markdown中插入github仓库中的图片
    MySQL:管理MySQL、事务(三)
    MySQL:查询、修改(二)
    MySQL:主键、外键、索引(一)
  • 原文地址:https://www.cnblogs.com/lst619247/p/9110445.html
Copyright © 2011-2022 走看看