金玲

导航

 

闭包函数:

闭包是以 匿名函数的形式来实现。

 

a. 匿名函数:没有实际名字的函数。

  • console.log(typeof function(){});// "function"  

  • console.log(typeof function(x,y){return x+y;});// "function"  
  • console.log(typeof new Function("x","y","return x*y;"))// "function"  

 

 

var  fn = function(){return 0;}; 匿名函数赋值给fn,fn是一个函数变量

b.闭包函数是:函数的嵌套,内层的函数可以使用外层函数的所有变量。

function outer(a){

  var inner = function(){

    return a+1;

  };

  return inner;

}

var a = 1;

var c = outer(1);

c();//2

1、内部函数inner使用了外部函数的变量。

2、outer的返回值inner是一个函数

3、使用的时候直接加()调用即可

闭包函数好处:

1. 保护函数的内部变量安全 
2. 在内存中维持一个变量,防止被垃圾回收

function outer(a){

  var inner = function(){
    a+=1;
    return a;

  };

  return inner;

}

var a = 1;

var c = outer(a);

c();//2

var b = 1;

var d = outer(b);

d();//2

c();//3

c();//4

d();//2

 

posted on 2017-12-13 14:23  金_玲  阅读(200)  评论(0编辑  收藏  举报