码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript闭包

时间:2015-11-08 20:41:22      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

请先看此段代码:

function f2() {
    var n = 999;
    returnfunction () {
        alert(n += 1);
        return n; 
    }
}
var result = f2();
result();
result();
result();

 

f2是外部函数,它返回一个函数。。。这里的输出结果是:1000,1001,1002

上面这段代码其实就是闭包的表达形式。正常情况下若f2只是返回n,见如下代码:n的值是不被记录的。

function f2() {
    var n = 999;
    return alert(n+=1);
}
var result = f2;
result();
result();
result();

这里的输出结果是:1000,1000,1000
在JavaScript中有作用域和执行环境的问题,在函数内部的变量在函数外部是无法访问的,在函数内部却可以得到全局变量。
在有的需求下,我们想封装一个变量。但有想通过函数外部去访问这个变量,这个时候闭包就起作用了。

Javascript闭包

标签:

原文地址:http://www.cnblogs.com/chenjianxiang/p/4947932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!