zoukankan      html  css  js  c++  java
  • 作用域嵌套

    我们说过,作用域是根据名称查找变量的一套规则。实际情况中,通常需要同时顾及几个
    作用域。
    当一个块或函数嵌套在另一个块或函数中时,就发生了作用域的嵌套。因此,在当前作用
    域中无法找到某个变量时,引擎就会在外层嵌套的作用域中继续查找,直到找到该变量,
    或抵达最外层的作用域(也就是全局作用域)为止。
    考虑以下代码:

    function foo(a) {
    console.log( a + b );
    }
    var b = 2;
    foo( 2 ); // 4

    对 b 进行的 RHS 引用无法在函数 foo 内部完成,但可以在上一级作用域(在这个例子中就
    是全局作用域)中完成。
    因此,回顾一下引擎和作用域之间的对话,会进一步听到:
    引擎: foo 的作用域兄弟,你见过 b 吗?我需要对它进行 RHS 引用。
    作用域:听都没听过,走开。

    引擎: foo 的上级作用域兄弟,咦?有眼不识泰山,原来你是全局作用域大哥,
    太好了。你见过 b 吗?我需要对它进行 RHS 引用。
    作用域:当然了,给你吧。
    遍历嵌套作用域链的规则很简单:引擎从当前的执行作用域开始查找变量,如果找不到,
    就向上一级继续查找。当抵达最外层的全局作用域时,无论找到还是没找到,查找过程都
    会停止。

  • 相关阅读:
    Oracle数据库配置
    匹配汉字与全角半角括号
    Linux任务调度crontab时间规则介绍
    配置文件方面的总结
    openlayers 4快速渲染管网模型数据
    openlayers 各种图层,持续更新
    简单的js定时器
    mysql client does not support authentication
    java 记录
    创建maven工程
  • 原文地址:https://www.cnblogs.com/yu-hailong/p/8675338.html
Copyright © 2011-2022 走看看