美文网首页
简单理解闭包

简单理解闭包

作者: 带带带前端 | 来源:发表于2019-01-22 14:29 被阅读0次

本来以为闭包很简单,只是一个函数引用另一个函数的变量.但为什么要这样做呢.

function a(){
    var a =1;
    function inner(){
        return a;
    }
    return inner();
}//1
function b(){
    var b=1;
    return b;
}//1

两段代码一样 为何要多此一举.实际关键在于inner的().
return inner代表返回inner的指针 return inner()代表返回inner的值.
再来段代码就能发觉其中区别

function a(){
    var a =1;
    function inner(){
        return a++
    }
    return inner;
}
b=a();
b();//1
b();//2
b();//3

因为变量a一直被引用 所以不会被回收.可以用来封装私有变量.

function a(){
    var a =1;
    function inner(){
        return a++
    }
    return inner();
}
a();//1
a();//1

返回a并没有被持续引用,return inner()后就被垃圾回收了
明白了8铁汁们

相关文章

  • 简单理解闭包

    当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。 在 Javascript 中,如果一个对象不再被引...

  • 简单理解闭包

    本来以为闭包很简单,只是一个函数引用另一个函数的变量.但为什么要这样做呢. 两段代码一样 为何要多此一举.实际关...

  • 知识收集

    一、闭包 理解闭包: 只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。...

  • JS进阶系列之闭包

    我对闭包的理解就是:闭包就是能够读取其他函数内部变量的函数,可以把闭包简单理解为“定义在一个函数内部的函数”。 在...

  • 闭包的简单理解

    window.onload = function () { //闭包:子函数可以使用父函数的局部变量 functi...

  • 简单理解JavaScript闭包

    很多关于JS的书籍例如《JavaScript权威指南》或者《高程》都把闭包解释的晦涩难懂,萌新们是怎么也看不懂啊!...

  • js作用域链

    之前写过一篇JavaScript 闭包究竟是什么的文章理解闭包,觉得写得很清晰,可以简单理解闭包产生原因,但看评论...

  • JavaScript之理解闭包

    一个简单的闭包 例1 理解闭包 闭包是指在 JavaScript 中,内部函数总是可以访问其所在的外部函数中声明的...

  • JavaScript闭包之for循环

    之前讲了最简单的闭包,然而闭包最经典的是那个for循环,几乎每一个想要理解闭包的都会遇到这个例子,每一个讲解闭包的...

  • Gradle开发-Groovy闭包

    # 闭包 闭包的基础知识 闭包的使用 闭包 this,owner,delegate 的理解 总结 ## 闭包的基础...

网友评论

      本文标题:简单理解闭包

      本文链接:https://www.haomeiwen.com/subject/zdbljqtx.html