闭包解析

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变量,这就是一个闭包函数

你可能感兴趣的:(闭包解析)