码迷,mamicode.com
首页 > 其他好文 > 详细

闭包举例

时间:2014-11-13 22:13:13      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   使用   sp   

    js的变量以作用域划分为两种:全局变量、局部变量。在函数外声明的变量为全局变量,函数内部可以直接调用全局变量。在函数内部声明变量一定要用var 命令,否则就是在函数内部声明了一个全局变量了。

    闭包的产生是为了从外部读取函数的局部变量,即在函数内部再定义一个函数f2,把f2作为返回值,在上层函数中返回就可以使上层函数读取其他函数的局部变量了

function f1(){

    n=999;

    function f2(){
      alert(n);
    }

    return f2;

  }

  var result=f1();

  result(); // 999

闭包(closure)就是能够读取其他函数内部变量的函数。也可以说是定义在一个函数内部的函数,本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

闭包的用途:1. 可以读取函数内部的变量

                        2. 让这些变量的值始终保持在内存中,因为f2依赖于f1的存在而存在。

缺点:函数中的变量都被保存在内存中,使内存消耗很大,所以不能滥用闭包,不然网页性能会降低,在IE中也可能会内存泄露,所以在退出函数之前,将不再使用的局部变量全部删除。

闭包举例

标签:style   blog   http   io   color   ar   os   使用   sp   

原文地址:http://www.cnblogs.com/maolixing-love/p/4095942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
周排行
mamicode.com排行更多图片
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!