js闭包使用及建议

来源:互联网 发布:spss如何输入数据 编辑:程序博客网 时间:2024/05/21 01:54

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
原创粉丝点击