首页 > 编程语言 > 详细

javascript的闭包

时间:2017-01-07 16:09:49      阅读:151      评论:0      收藏:0      [点我收藏+]

javascript的闭包

作用域的好处是:内部函数有权访问外部函数的参数和变量(this和arguments除外)。

 

1. 闭包的概念:

闭包是指有权访问某个函数作用域中的变量的函数。

2. 闭包的常见方式:

在一个函数内部创建一个函数。

 

由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。

所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

 

3. 闭包的用途:

获取函数的内部变量;

将变量的值始终保存在内存中。

 

4. 使用闭包要注意的点:

1)由于闭包会使函数的变量保存在内存中,内存消耗大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。

  解决方法是:在退出函数之前,将不使用的局部变量全部删除。

2)闭包会在父函数外部改变父函数内部变量的值。

  如果将父函数当作对象使用,把闭包当作它的共有方法,把内部变量当作私有属性,这是一定要小心,不要随便改变父函数内部变量的值。

 

例子:

var add_the_handlers = function(nodes){  
    var helper = function(i){
    return function(e){
      alert(i);
    }
  };
  var i;
  for(i = 0; i < nodes.length; i++){
    nodes[i].onclick = helper(i);
  } };
 

 

阅读文章:

1. 《js语言精粹》第4章函数

2. 阮一峰的网络日志《学习Javascript闭包(closure)》--网址:http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

javascript的闭包

原文:http://www.cnblogs.com/beileiluan/p/6259312.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!