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();

    简单的闭包函数

  • 相关阅读:
    工具-pycharm-Git管理代码到GitHub
    工具-jenkins配置项目
    工具-jenkins重启服务
    工具-jenkins安装
    pycharm-管理GitHub
    博客园样式DIY
    接口测试-获取邮件授权码口令
    iOS 反射 学习 和 运用
    iOS 优化界面流畅度的探讨
    iOS 事件响应者链的学习(也有叫 UI连锁链)
  • 原文地址:https://www.cnblogs.com/lst619247/p/9110445.html
Copyright © 2011-2022 走看看