web,h5开发细节

闭包解析

2018-08-02  本文已影响0人  曾经也是个少年

function a (x){

  var z = 1;

  return function(y){

    alert(x+(y+1)+(z+1));

    //console.log(x);

    //console.log(y)

  }

}

var c = a(1);

//console.log(c)

c(2);

单单这样肯定还有很多还是一脸懵逼,我们吧c打印出来,逻辑久很清楚了,其实c方法的真实面目其实是这样的:

function(y){

  alert(y+(x+1)+(z+1)); //8

}

这样我们在匿名函数里面调用了a函数的z变量,这就是一个闭包函数

上一篇下一篇

猜你喜欢

热点阅读