作用域和闭包

作用域:函数的内部环境可以通过作用域链访问到所有的外部环境,但外部环境却不能访问到内部环境;

作用域的形成:在一个函数创建时形成的,而不是函数调用;

作用域向上查找是查找创建它的那个作用域

(闭包:函数在某个特殊情况下创建就会形成闭包,这个特殊情况就是,它使用了自己局部作用域以外的变量。)

在函数a内创建另一个函数b时,就相当于创建了一个闭包。内层函数b就是闭包。

通常情况下,为了让外部函数的内部变量可以访问,都会返回这个闭包。

function outerFunction(){

  var name = 'kitty';

  return innerFunction() {

    console.log('hello,', name);

  }

}

outerFunction()(); // hello,kitty

posted @ 2018-11-12 16:38  爱技术的比目鱼  阅读(103)  评论(0编辑  收藏  举报