javascript 闭包

javascript 闭包

一.什么是闭包:

1.函数内部可以访问函数外部的变量,函数外部不能访问函数外部的变量。为了打破这种“不公平”,就产生了闭包。

2.函数调用结束后函数内部变量会退出内存,使用闭包,可以继续使用函数内部变量,因为函数被引用。如:案例二中:var n=test();

3.使用闭包还可以修改函数内部变量。

二.案例:

//案例一:(误区)
​function test(){
  var num=10;
  return num;
}
var n=test();
alert(n());

//案例二:(闭包)
​function test(){
  var num=10;
  var num1=function test1(){
  return num;  
  }
  return num1;
}
var n=test();
alert(n());
//案例三:(闭包修改内部变量)
​function test(){
var num=10;
var num1=function test1(){ return num+1;
}
return num1;
}
var n=test();
alert(n());

当学会了觉得很简单,当不会的时候就觉得天快塌了。