zoukankan      html  css  js  c++  java
  • 深入作用域之静态作用域与动态作用域

     

      概念:

        静态作用域指的是一段代码,在它执行之前就已经确定了它的作用域,简单来说就是在执行之前就确定了它可以应用哪些地方的作用域(变量)。

        动态作用域在代码执行的时候才确定它的作用域的,以及作用域链。

    静态作用域:

    var a = 10;
    function fn(){
        var b = 1;
        console.log(a+b);
    }
    fn(); //11

    在创建函数fn的时候就已经确定了它可以作用那些变量,如果函数fn里面有变量a就直接作用函数fn里面的变量a,如果没有就往上一级找,这就是静态作用域。

    动态作用域:

    var a = 10;
    function fn(a){
        var b = 1;
        console.log(a+b);
    }
    fn(1); //2

    你肯定会疑问你上面不是说,函数fn在创建的时候就已经确定了它的作用域吗?为什么现在又不是了?其实一开始它确实已经确定了它的作用域,但是又因为你在调用这个fn的时候写了参数,这个函数fn的作用域又发生了改变,变成了动态的作用域,于是它作用了在函数体内的变量a。

     
  • 相关阅读:
    CPU
    CentOS7 Tomcat 环境部署
    CentOS7 NTP 安装配置
    CISCO VLAN ACL
    ESXI6.0启用 snmp
    编译安装 varnish-4.1.2和yum 安装 varnish-4.0.3
    CentOS7 安装中文帮助手册
    CentOS7 学习笔记
    CentOS7 编译安装 nginx-1.10.0
    CentOS7 cacti 安装
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/5217905.html
Copyright © 2011-2022 走看看