【第22期】观点:IT 行业加班,到底有没有价值?

js闭包使用及建议

原创 2016年08月30日 08:51:25

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);
}

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

js使用闭包时,内部函数是直接访问外部函数的实际变量而非复制一份新变量

http://wenbois2000.iteye.com/blog/897769 中的代码解读 使用闭包时,理解 [color=red]内部函数是直接访问外部函数的实际变量,而非复制一份新变量是非常重要的[/color] (!).下面是一个错误示范: [code="javaSceipt"] <INPUT TYPE="button" NAME="tt" VALUE="按钮3" ONCLI

JS中使用闭包来定义常量

JS中有个关键字const,但是目前的浏览器不支持。如果要是定义一些常量建议使用闭包var Class = (function () { var UPPER_BOUND = 100; //定义...

欢迎关注CSDN程序人生公众号

关注程序员生活,汇聚开发轶事。

js bind 函数 使用闭包保存执行上下文

  转自:<a style="font-family: Tahoma, Helvetica, SimSun, sans-serif; line-height: 18px;" href="ht
  • lvmy
  • lvmy
  • 2012-08-13 15:22
  • 621

JS中批量给元素绑定事件过程使用闭包解决

在JS中,你写一个for循环的时候,内部的循环变量I其实是会保存在它运行的函数或类内的,所以你会发现你给元素批量绑定事件的时候,出现i=最后一个循环变量的值,这就很坑爹啊,解决的方案有2钟,   ...

js 闭包的使用

    1 初始化dom元素 ,在页面加载的时候只执行一次,不在被调用    var datamodel = { table : [], tree : {} }; (function(dm){ alert("22222222222"); for(var i = 0; i &lt;
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)