关闭

js闭包使用及建议

标签: 闭包
212人阅读 评论(0) 收藏 举报
分类:

js的闭包核心问题就是变量的作用域,在一个闭包(一个函数)内部作用域与外部作用的关连问题。举个例子

var i = 6;
var test = function(){
    var i = 5;
    return i;
}

以上的test相对外部来讲就是一个闭包了,这个闭包里面的变量i在自己的作用域范围。这里的返回值是5;
再来一个例子

var i = 6;
var test = function(){
    var i = 5;
    return function(){
        var i = 9;
        return i;
    }
}

test函数中又有一个返回值的闭包,这个里面的值是9,相信大家都已经看出来了,闭包{}内的作用域是不受外面影响的。如果是传值的话则返回传入的参数,在闭包中很好的保护起来。

var test = function(){
    var i = 5;
    var handle = setTimeout(function(){
        return i;
    }, 1000);
}

建议不要深度的使用闭包,那样的代码非常难以维护以及理解。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:229134次
    • 积分:4131
    • 等级:
    • 排名:第7869名
    • 原创:171篇
    • 转载:13篇
    • 译文:7篇
    • 评论:34条
    博客专栏
    最新评论