`
orcl_zhang
  • 浏览: 235685 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

js笔记(闭包)

阅读更多
前段时间javaeye以及其他网上看到一些js的资料,做了一点笔记。
一,闭包
function closureDemo1(){
   function a(){
     var i=0;
     function b(){
      alert(++i);
     }
     return b;
   }
   var c = a();
   c();
   c();
  }
闭包的应用场景
1、保护函数内的变量安全。以最开始的例子为例,函数a中i只有函数b才能访问,而无法通过其他途径访问到,因此保护了i的安全性。
2、在内存中维持一个变量。依然如前例,由于闭包,函数a中i的一直存在于内存中,因此每次执行c(),都会给i自加1。
以上两点是闭包最基本的应用场景,很多经典案例都源于此。
Javascript的垃圾回收机制
在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。如果两个对象互相引用,
而不再被第3者所引用,那么这两个互相引用的对象也会被回收。
因为函数a被b引用,b又被a外的c引用,这就是为什么函数a执行后不会被回收的原因
分享到:
评论

相关推荐

    javascript笔记之匿名函数和闭包.docx

    javascript笔记之匿名函数和闭包.docx

    JS学习笔记之闭包小案例分析

    本文实例讲述了JS学习笔记之闭包小案例。分享给大家供大家参考,具体如下: 直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</...

    JS核心课堂笔记

    达*内部js核心课堂笔记,里面有数组、闭包、原型链等等重难点内容

    谈谈我对JavaScript原型和闭包系列理解(随手笔记8)

    主要介绍了谈谈我对JavaScript原型和闭包系列理解(随手笔记8)的相关资料,需要的朋友可以参考下

    JavaScript闭包和立即执行函数的个人笔记

    闭包和立即执行函数一、闭包二、闭包的作用三、闭包形式四、立即执行函数五、使用环境六、小练习 一、闭包 当a函数已经执行完了,b函数才开始。 原创文章 10获赞 3访问量 453 关注 私信 展开阅读全文 作者:...

    javascript笔记之匿名函数和闭包

    本文介绍了js匿名函数和闭包的相关内容,供大家参考,具体内容如下 匿名函数 [removed] //function(){}//会报错 var fun = function(){};//将匿名函数赋值给变量 (function(){})();//匿名函数自执行 function...

    JavaScript闭包原理与用法学习笔记

    本文实例讲述了JavaScript闭包原理与用法。分享给大家供大家参考,具体如下: 闭包(Closure) 闭包是一个函数和词法环境的组合,函数声明在这个词法环境中。 词法作用域: 看下面的一个例子: function init() { ...

    谈谈我对JavaScript原型和闭包系列理解(随手笔记6)

    相关阅读:谈谈我对JavaScript原型和闭包系列理解(随手笔记8) 谈谈我对JavaScript原型和闭包系列理解(随手笔记9) 什么是闭包 闭包是什么?闭包是Closure,这是静态语言所不具有的一个新特性。但是闭包也不是什么...

    JavaScript函数、闭包、原型、面向对象学习笔记

    给大家分享了一篇关于JavaScript函数、闭包、原型、面向对象的知识点学习笔记内容,有兴趣的朋友参考下。

    JavaScript 中级笔记 第四章 闭包

    5,闭包 闭包意味着内层的函数可以引用存在于包围它的... [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 在使用setTimeout时,我们经常也用上了闭包。 demo CssRain [Ctrl+A 全选 注:如需引入外部Js需刷新才

    谈谈我对JavaScript原型和闭包系列理解(随手笔记9)

    相关阅读:谈谈我对JavaScript原型和闭包系列理解(随手笔记6) 谈谈我对JavaScript原型和闭包系列理解(随手笔记8) 作用域 引用《JavaScript语言精粹和编程实践》上对作用域的定义: 变量作用域又叫变量的可见性。...

    javascript学习笔记(十三) js闭包介绍(转)

    一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 代码如下: var n=999;...

Global site tag (gtag.js) - Google Analytics