`
qiqicode
  • 浏览: 7662 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JavaScript 学习笔记 9_JavaScript中的闭包

阅读更多
闭包吧~

JavaScript中的闭包

Function对象本身是不完整的——为了调用它,我们需要传进一个上下文对象以及一组参数(可能是一个空的集合)。在最简单的情况下,闭包可以看做是捆绑了运行所需所有资源的Function对象。
闭包在JavaScript中是隐式而非显式船舰的。没有构造函数new Closure() ,也没有方法来得到闭包对象的句柄。创建闭包就像在代码块中(例如在另一个函数中)声明函数并且使得该函数在代码块之外可以获得一样简单。

如下例子:一个机器人(对象),记录每个机器人创建时的系统时钟时间。
function Robot()
{
var createTime = new Date();
this.getAge = function()
{
var now = new Date();
var age = now – createTime;
return age;
}
}

其实这样我们就创建了一个闭包。一个函数中定义了另一个函数,而内部函数使用的本地变量createTime属于外部函数的作用域。

再看下面:
function Robot()
{
var createTime = new Date();
this.getAge = roboAge;
}

function roboAge()
{
var now = new Date();
var age = now – createTime;
return age;
};

这样就没有创建闭包,且我们得到了一个错误信息:createTime没有定义。闭包仅仅当内部函数创建在外部函数之内的时候才可以工作。

创建闭包非常容易,以至于太容易意外地创建。因为闭包与本地变量绑在一起,使得它们不能被垃圾器收集。例如,如果也以这种方式捕获DOM节点,那么无意中创建的闭包随着时间的延长将会造成严重的内存泄漏。

总结:到现在为止,JavaScript面向对象编程的介绍就这样结束了,当然这只是一个简单的介绍而已,而且这种编程风格不是JavaScript的标准编程风格。但对于先接触Java或者C++的人来说是值得学习和参考的。


codd和他的朋友们休息休息~~~~~~~拜拜~~~
分享到:
评论

相关推荐

    Javascript学习笔记___自学实用

    JavaScript学习笔记——深入理解基础与函数 在JavaScript中,学习基础知识是至关重要的,因为它是所有进一步编程技巧的基础。首先,我们需要了解JavaScript中的数据类型。在JavaScript中,有五种简单的数据类型:...

    JavaScript学习笔记_js常用函数封装_js包.zip

    本压缩包“JavaScript学习笔记_js常用函数封装_js包.zip”包含了对JavaScript基础及进阶技巧的学习资料,特别关注了函数封装和模块化开发实践。 首先,`tool.js`可能是一个实用工具函数集合,封装了一些常见的...

    javascript学习笔记整理知识点整理

    这份“javascript学习笔记整理知识点整理”是针对初学者的一份宝贵资料,涵盖了JavaScript的基础知识,旨在帮助新手快速入门并掌握这门语言的核心概念。 一、变量与数据类型 在JavaScript中,变量用于存储数据。...

    javascript入门学习笔记

    这份"javascript入门学习笔记"旨在为初学者提供一个全面且深入的JavaScript学习路径。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符、流程控制等。变量用于存储数据,数据类型分为基本类型(如字符串...

    js 笔记 javascript 学习笔记

    本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...

    JavaScript学习笔记

    本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...

    Javascript学习笔记(传智播客视频学习笔记+代码)

    "Javascript学习笔记(传智播客视频学习笔记+代码)"是一份全面介绍JavaScript基础知识的学习资源,适用于初学者。这份笔记结合了传智播客的web前端培训视频内容,提供了丰富的理论讲解和实践代码,帮助读者从零开始...

    javaScript学习笔记.rar

    这个“javaScript学习笔记.rar”压缩包显然包含了作者在学习JavaScript过程中的心得和记录,对于初学者或者想要深入理解JavaScript的人来说,是一份宝贵的资源。 JavaScript与Java虽然名字相似,但两者实际上是不同...

    JavaScript学习笔记讲解

    这只是JavaScript学习笔记的一小部分,JavaScript还有更多高级特性和概念,如对象、数组、函数、类、模块、闭包等,以及DOM操作、事件处理、Ajax异步请求等内容,需要进一步深入学习和实践才能掌握。

    JavaScript 学习笔记集和代码库

    压缩包中的“JavaScript学习笔记集”可能包含了语言的基本概念、语法特性、面向对象编程、闭包、原型链、作用域、异步编程等内容的详细解释。而“代码库”可能包含了大量的示例代码,涵盖各种常见任务,如表单验证、...

    JavaScript学习笔记整理_setTimeout的应用

    在本篇学习笔记中,我们将深入探讨`setTimeout`的应用及其相关概念。 首先,`setTimeout(f, n)`接收两个参数:一个函数`f`和一个时间间隔`n`(以毫秒为单位)。它会安排在`n`毫秒后执行`f`函数,但请注意,`...

    JavaScript 入门 新手学习笔记

    这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...

    JavaScript学习笔记-适合初学者

    本学习笔记专为初学者设计,旨在帮助新接触JavaScript的人快速掌握这门语言的核心概念和实用技巧。 首先,"JavaScript特效.chm"可能是一份关于JavaScript实现的各种网页特效的教程。这些特效可能包括图片轮播、下拉...

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

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

    JavaScript入门学习笔记

    内容概要:本文档《JavaScript入门学习笔记.pdf》详细介绍了JavaScript的基础知识及其应用。首先概述了B/S架构中的关键技术,强调了HTML、CSS和JavaScript在Web开发中的角色。接着深入讲解了JavaScript的基本概念,...

    javascript学习笔记

    JavaScript学习笔记涵盖了多个核心主题,旨在帮助学习者掌握JavaScript编程语言的高级知识和应用技巧。首先,学习笔记从高级程序设计的角度出发,探讨了JavaScript的基础和进阶知识,这包括了编程范式、作用域、闭包...

    JavaScript学习笔记 概括了所有的javaScript语法 用法

    本学习笔记全面涵盖了JavaScript的语法和用法,旨在帮助初学者快速掌握并深入理解这门语言。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符和流程控制。变量在JavaScript中使用`let`、`const`和`var`...

Global site tag (gtag.js) - Google Analytics