• JavaScript 作用域 匿名函数 模仿块级作用域(私有作用域)


    作用域 

    对于有块级作用域的语言来说,for语句中定义并初始化的变量i在循环外是无法访问的。

    而javascript没有块级作用域,for语句中定义的变量i在循环结束后,依旧会存在于循环外部的执行环境(作用域)中,在这里i的作用域是全局环境。

    具体来说就是:使用var关键字声明变量时,这个变量会自动添加到距离最近的可用环境中。对于函数而言,这个最近的环境就是函数的局部环境。如果变量在未经声明的情况下被初始化,则该变量会被自动添加到全局环境。

    不过有时候的确很需要块级作用域来解决一些问题,这时候我们就可以使用匿名函数来模仿块级作用域。

    匿名函数

    匿名函数就是没有名字的函数,有时候也被称为拉姆达(lamda)函数。

    普通的函数声明如下:

    1 function functionName(){
    2  // Code goes here
    3 }

    匿名函数 如下:

    1 function(){                               //   顾名思义,函数没有名字
    2 // Code goes here
    3 }

    模仿块级作用域(私有作用域)

    Javascript中模仿块级作用域

    模仿块级作用域(私有作用域)的匿名函数的方式如下:

    (function(){
        //块级作用域
    })();

    上面的代码中,首先以函数表达式的方式定义了一个函数,然后立即调用它。在这里定义函数的方式就是先创建一个匿名函数,然后将其赋值给变量myFunc,而在函数名称后加一对圆括号即表示调用函数。

    因为在javascript中,function关键字表示一个函数声明的开始,而函数声明后面不能直接跟圆括号。而函数表达式后面可以跟圆括号,来表示函数调用。

    注意:

    在函数声明外面加一对圆括号就可以转换成函数表达式,事实上在括号前面添加 + —  等都能够将其转化为表达式。

     立即执行函数 函数作用域

    (The End)
  • 相关阅读:
    一个项目多个App项目搭建
    mac 配置sencha touch环境
    mac 配置pylucene
    django博客开发
    xampp添加 django支持
    mac安装apache的mod_wsgi模块
    修改xampp默认sql密码
    xampp 安装 mysql-python
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    MySQL问题解决:-bash:mysql:command not found
  • 原文地址:https://www.cnblogs.com/oneplace/p/5499662.html
Copyright © 2020-2023  润新知