学科分类
目录
JavaScript网页编程

闭包函数的实现

闭包的常见创建方式就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。为了让大家更加清楚闭包函数的实现,下面我们通过代码进行演示。

 1  function fn() {

 2   var times = 0;

 3   var c = function () {

 4    return ++times;

 5   };

 6   return c;

 7  }

 8  var count = fn();    // 保存fn()返回的函数,此时count就是一个闭包

 9  // 访问测试

 10 console.log(count());  // 输出结果:1

 11 console.log(count());  // 输出结果:2

 12 console.log(count());  // 输出结果:3

 13 console.log(count());  // 输出结果:4

 14 console.log(count());  // 输出结果:5

上述第3~5行代码,利用闭包函数实现了在全局作用域中访问局部变量times,并让变量的值始终存储在内存中。第8行代码调用fn()函数后,接下来将匿名函数的引用返回给count变量,且匿名函数中使用了局部变量times。因此,局部变量times不会在fn()函数执行完成后被JavaScript回收,依然保存在内存中。

点击此处
隐藏目录