js --- return返回值 闭包

什么是闭包?这就是闭包!

  有权访问另一个函数作用域内变量的函数都是闭包。这里 inc 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。

function a(){
  var n = 0;
  function inc(){
    n++; 
    console.log(n);
  }
  return inc;
}
var c = a();
c();  //控制台输出1
c();  //控制台输出2

var c = a(),这一句 a()返回的是函数 inc,那这句等同于 var c = inc;

c(),这一句等同于 inc();  注意,函数名只是一个标识(指向函数的指针),而()才是执行函数。

后面三句翻译过来就是:  var c = inc;  inc();  inc();,跟第一段代码有区别吗? 没有。

 

js --- return返回值 闭包_第1张图片

 

 
   

 

转载于:https://www.cnblogs.com/yuerdong/p/8315905.html

你可能感兴趣的:(js --- return返回值 闭包)