美文网首页
Javascript 闭包详解

Javascript 闭包详解

作者: 我是一个前端 | 来源:发表于2018-12-26 14:42 被阅读0次
闭包特性
函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制回收
闭包的作用

具体作用是有权访问函数内部的变量,最常见的就是函数内部创建另一个函数,通过另一个函数访问这个函数的局部的变量。
缺点:就是常驻内存,会增大内存的使用量,使用不当会造成内存泄露。
一般函数执行完毕,局部活动对象就会被销毁,内存中仅仅保存全局作用域,但是闭包会长期驻扎在内存。

js垃圾回收

在javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收;(Garbage Collection),计算机科学中一种自动释放不再被使用的内存空间的机制。
如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。

全局变量 count++ 累加
var count = 0;
function testCount(){
    count++;
    console.log(count);
}

testCount();//result 1
testCount();//result 2
局部变量++ 不累加
function testCount(){
    var count=0;
    count++;
    console.log(count);
}
testCount();//result 1
testCount();//result 1

//到这里会问玩毛线呢 这个我们懂 I know。 我只是想通过这两个例子来说明闭包的用处和好处。
局部变量count++累加
function testCount(){
    var count=0;
    return function(){
        count++;
        console.log(count);
    }
}
var plus = testCount();  //函数赋值给变量
plus();        //plus函数调用一次,结果为1,相当于testCount()();
plus();        //plus调用第二次,结果为2,实现了局部变量累加了。

//闭包会使变量始终保存在内存中,如果使用不当会增大内存消耗。

相关文章

  • js闭包问题

    javascript 闭包的概念,闭包的作用,闭包经典面试题详解(配图解) 函数作用域(闭包前置知识) 要彻底弄懂...

  • JavaScript学习笔记(4) 闭包详解(Closure A

    《JavaScript学习笔记(4) 闭包详解(Closure Are Not Magic)》 ---- 写在开头...

  • 详解js闭包

    详解js闭包 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实...

  • JavaScript 闭包详解

    闭包(Closure)是前端开发者经常会听到的一个概念,也是我们在求职面试中经常会遇到的题目之一。透过表象去理解闭...

  • javascript闭包详解

    跟我念 bi 闭 bao包 ,闭包的闭,闭包的包。。 闭包的简介 在计算机科学中,闭包(英语:Closure),又...

  • JavaScript闭包详解

    要看闭包就要先看变量的作用域,作用域无非就分为全局变量和局部变量,函数内部可以直接读取全局变量,那么怎么在函数外部...

  • 详解javascript闭包

    闭包是javascript语言中的一个难点,也是一个重要的点。 所谓闭包,就是有权访问另外一个函数作用域中的变量的...

  • Javascript 闭包详解

    闭包特性 闭包的作用 具体作用是有权访问函数内部的变量,最常见的就是函数内部创建另一个函数,通过另一个函数访问这个...

  • JavaScript 闭包详解

    继上一篇文章 JavaScript 脚本编译与执行过程简述[https://www.jianshu.com/p/2...

  • WEB面试题总结

    模块一 JavaScript高级内功修炼 this指针/闭包/作用域 1.this指针详解 什么是this指向th...

网友评论

      本文标题:Javascript 闭包详解

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