首页技术文章正文

什么是作用域链?使用作用域链会出现什么效果?

更新时间:2021-06-25 来源:黑马程序员 浏览量:

当在一个函数内部声明另一一个函数时,就会出现函数嵌套的效果。当函数嵌套时,内层函数只能在外层函数作用域内执行,在内层函数执行的过程中,若需要引人某个变量,首先会在当前作用域中寻找,若未找到,则继续向上一- 层级的作用域中寻找,直到全局作用域。我们称这种链式的查询关系为作用域链。

下面我们通过代码演示在函数嵌套中的作用域链效果。

  var num = 10;
  function fn() {             //外部函数
    var num = 20;
   function fun() {          //内部函数
      console.log (num) ;      //输出结果: 20
  }
  fun() ;
 }
fn() ;
在上述代码中,fun(函数内访问了num变量,由于在fun(函数内部不存在num变量,所以向,上级作用域中查找。fun() 函数的上级作用域是fn0函数,在该函数中找到了num变量,所以输出结果为20。假如在fn)函数中也没有num变量,则再往上查找,这时就到了全局作用域,此时num的值就是全局作用域下的10。




   

猜你喜欢:

jsp作用域有哪些?jsp四大作用域是什么?    
Java函数式编程入门教程[java培训]

什么是函数式编程?[

虚函数的作用和实现原理介绍

黑马程序员前端高级软件工程师培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!