zoukankan      html  css  js  c++  java
  • JavaScript之模仿块级作用域

    简介:在JavaScript中没有块级作用域的概念。这意味这在块语句中定义的变量,实际上在包含函数中而非语句中创建的。证明代码如下:

    function outputNumbers(count){
        for(var i=0;i<count;i++){
            break;
        }
        alert(i);
    }
    outputNumbers(3); //输出:0

     下面来分析上面这个函数,上面的函数中定义了一个for循环,在Java,C#,C++等语言中,变量i只会在for循环中有定义,循环一旦结束,变量i就会被销毁,可是在JavaScript中,变量是定义在outputNumbers的活动对象中的,因此从他有定义开始,就可以在函数的内部访问到它,即使你重新申明变量,只要不给变量赋值,他只会对后面的申明视而不见,代码如下:

    function outputNumbers(count){
        for(var i=0;i<count;i++){
            break;
        }
        var i;
        alert(i);
    }
    outputNumbers(3); //输出:0

    而JavaScript中的匿名函数可以用来模仿块级作用域并避免这个问题。

    用作块级作用域(通常成为私有作用域)的匿名函数语法如下所示:

    (function () {
        
    })()
  • 相关阅读:
    UML 类之间的关系
    [noi.ac省选模拟赛]第11场题解集合
    [CF1270F]Awesome Substrings
    [noi.ac省选模拟赛20200606]赌怪
    FFT,NTT入门
    [AHOI2017/HNOI2017]单旋
    [HNOI2016]最小公倍数
    [HNOI2016]树
    [HNOI2016]大数
    服务外包概论课程资料
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/5909597.html
Copyright © 2011-2022 走看看