作用域

作者: bestCindy | 来源:发表于2022-02-21 18:41 被阅读0次

    什么是作用域

    举个例子:

    let x = 1;
    

    这个语句中有一个变量 x,有一个值 1

    有一个变量绑定 x = 1

    所谓 作用域,就是 变量绑定 的有效范围。就是说,在这个作用域中,这个变量是有效的,出了这个作用域就无效了

    静态作用域(词法作用域)

    在函数 定义 时就决定

    动态作用域

    在函数调用时决定

    举个例子

    var value = 1;
    
    function foo() {
      console.log(value);
    }
    
    function bar() {
      var value = 2;
      foo();
    }
    
    bar();
    

    如果采用静态作用域:

    • 执行 foo() 函数
    • foo() 函数内部查找是否有局部变量 value
    • 如果没有,从书写位置查找上一层代码 value = 1

    如果采用动态作用域

    • 执行 foo() 函数
    • foo() 函数内部查找是否有局部变量 value
    • 如果没有,从调用函数作用域,也就是 bar 函数内部查找 value, value = 2

    相关文章

      网友评论

          本文标题:作用域

          本文链接:https://www.haomeiwen.com/subject/iqyilrtx.html