`
footman265
  • 浏览: 114485 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

JavaScript对象模型-执行模型(笔记4)

阅读更多

JavaScript中的闭包Closures
示例:

//Passed in FF2.0, IE7, Opera9.25, Safari3.0.4
function outer(){
    
var a="aaa";
    
var b="bbb";
    
return function(){ return a + " " + b; };
}
var inner=outer();
document.write(inner());
outer返回的是一个内嵌函数,内嵌函数使用了outer的局部变量a和b。照理outer的局部变量在返回时就超出了作用域因此inner()调用无法使用才对。这就是闭包Closure,即函数调用返回了一个内嵌函数,而内嵌函数引用了外部函数的局部变量、参数等这些应当被关闭(Close)了的资源。

根据前面Scope Chain的理解可以解释,返回的内嵌函数已经持有了构造它时的Scope Chain,虽然outer返回导致这些对象超出了作用域、生存期范围,但JavaScript使用自动垃圾回收来释放对象内存: 按照规则定期检查,对象没有任何引用才被释放。因此上面的代码能够正确运行。

关于使用Closure时的内存泄漏、效率等问题,参考http://www.jibbering.com/faq/faq_notes/closures.html

分享到:
评论

相关推荐

    JavaScript核心笔记

    JS的核心笔记,写给想打好JS基础的你!

    JavaScript笔记

    |--4.slice()方法--截取元素。根据给定的范围可从已有的数组中返回选定的元素 14.Function:js中一切都是对象,连方法都是1个对象!! 笔试题:js中方法定义集中方式: A:function compare(a,b){return a-b;}--...

    Javascript 备忘笔记

    知识点比较全面的javascript备忘笔记,特点有: 1、知识点全面,相应案例全 2、Javascript面向对象方面做了大量的研究 3、对内置对象的知识很...4、DOM模型的控制事例很多 5、Cookie技术和Ajax技术 6、收集常用的js代码

    CSS样式-JavaScript笔记.pdf

    1. 能够使用CSS的基本选择器选择元素 ...3. 能够说出盒子模型的属性 4. 能够说出JS中五种数据类型 5. 能够使用JS中常用的运算符 6. 能够使用JS中的流程控制语句 7. 能够在JS中定义命名函数和匿名函数

    front-end-notes:前端笔记

    front-end-notes前端学习笔记CSS 盒模型DOM 事件HTTP 协议原型链面向对象通信安全算法浏览器页面相关JS 运行机制页面性能错误监控业务能力职业竞争力md-3:前端 JavaScript 知识总结目标ES6原型异步虚拟 DOMMVVM 和 ...

    谷歌师兄的leetcode刷题笔记-reading-notes:读书笔记

    问题域、对象文字、文档对象模型 域建模、表、函数、方法和对象 HTML 链接和 CSS 布局 表单、列表、表格、表单和事件 调试 图像、音频和视频 图表和画布元素 本地存储 变换、过渡和动画 谷歌从建立完美团队的努力...

    JavaScript学习笔记

    JavaScript学习笔记 W3C文档对象模型node部分查询:http://www.w3schools.com/dom/dom_node.asp

    js笔记.docx

    JavaScript是一种描述性语言 也是一种基于对象(object)和事件驱动(Event Driven)的 并具有安全性能的脚本语言 JavaScript应用程序多要下载到浏览器的客户端执行从而减轻服务器负担  JavaScript主要用来在HTML...

    javascript学习基础笔记之DOM对象操作

    DOM文档对象模型是HTML和XML的应用程序接口(API),DOM将整个页面规划成由节点层次构成的文档。DOM对象给予开发者对HTML的访问权限,并且使开发者能将HTML作为XML文档来处理和查看。DOM对象是与语言无关的API,意味...

    java script听课笔记

    Javascript 输入网址 JS文件客户端保存 浏览器引擎执行Js 通过交互响应返回 Firefox插件->Filebug ->fetwork ECMAscript核心、DOM文档对象模型、BOM浏览器对象类型 ECMaScript Javascript是面向对象

    JavaScript 核心参考教程 内置对象

    这个标准基于 JavaScript... 本系列教程旨在向大家分享本人当年学习Javascript的笔记和心得。本系列教程预计分五个部分。 第一部分:Javascript内置对象。 第二部分:浏览器对象。 第三部分:文档对象模型。 第四部分:

    javascript入门笔记

    4、1997年 网景 将Javascript 1.1 提供给了ECMA(欧洲计算机制造商联合会),ECMA 获取了 JS 的核心,称之为 ECMA Script (ES) 完整的JS组成: 1、核心(ES) 2、文档对象模型(Document Object Model) - DOM 允许让 ...

    Semantic-Kernel-MyPlugins.zip

    以上是人工智能_大模型028_大语言模型开发框架_Semantic Kernel详细介绍_框架安装_Semantic Functions脚本编写---人工智能工作笔记0163 这个博文中的案例文件,是包括了,如何使用Semantic Function进行,利用自然语言,...

    Javascript 面向对象编程(一) 封装

    因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。 下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍: 《面向对象的Javascript》(Object-Oriented ...

    千峰python课件笔记+源码 (凯哥)

    4、JavaScript提升 5、JavaScript进阶与轮播和飞机大战坦克 6、JQuery基础 7、JQuery提升 8、H5C3基础 第三章 Django 1、Django基本流程走通 2、Django中的模型 3、Django中的视图 4、Django中的模板 5、Django的...

    JavaScript高级程序设计学习笔记(一)

    2、文档对象模型(DOM),提供访问和操作网页内容的方法和接口。 3、浏览器对象模型(BOM),提供与浏览器交互的方法和接口。 第二章 script标签 延迟脚本:定义defer属性,表明脚本在执行时不会影响页面的构造,也...

    awesome-[removed]Javascript第4版学习笔记

    Javascript第4版学习笔记 ​ 本书从 JavaScript 的起源开始,逐步讲解到新出现的技术,其中重点介绍 ECMAScript 和 DOM 标准。在 此基础上,接下来的各章揭示了 JavaScript 的基本概念,包括类、期约、迭代器、代理...

    [removed]JavaScript基础笔记

    一个完整JavaScript由ECMAScript(核心),DOM(文档对象模型),BOM(浏览器对象模型); 文档对象模型(DOM):是针对XML但经过扩展HTML的应用程序编程接口(API,应用程序编程接口)。DOM将整个页面映射为一个多层...

    Ruby学习笔记

    对象模型比起JavaScript好的不是一点两点,clone关键字真是为原型式编程量身打造的,new就显得不伦不类了,尤其是我从Java开始的。恩,废话就少提,下面我学习Ruby的各个部分。其中Ruby风格这一部分是开放的,因为我...

    韩顺平html+css笔记

    2013笔记轻松搞定网页设计html+css+javascript 内容介绍 该教程用循序渐进的手法和项目驱动的案例,由浅入深的讲解网页设计的...4、javascript深入讲解(js基本语法、数组、js面向对象编程,js系统函数、事件、js dom

Global site tag (gtag.js) - Google Analytics