function 王老吉(){ var 剩余=100; return function(){ 剩余--; console.log(剩余内含饮料); } } var 喝王老吉=王老吉(); 喝王老吉();//剩下99 //干别的事情 喝王老吉()//剩下98
不知道这样的例子能不能很清楚的描述成一个闭包的作用:
1、避免每次喝王老吉时,饮料都是100开始计数(用外面的术语 讲就是避免函数执行完成后被释放。)
2、如果不使用这样的写法,就得把计数器暴露在外面
代码如下
var 剩余=100 function 喝王老吉(){ 剩余--; } 喝王老吉();//剩下99 //干别的事情 喝王老吉()//剩下98
这很不合理,因为“剩余”这个变量是属于王老吉本身的。
在早期的面向结构编程中,数据和处理逻辑是分开的。后来人们发现这样有很多问题,就把关联的数据和处理逻辑绑定起来。如果以数据(名词)为主体,封装处理逻辑(动词),就是面向对象编程里的对象。如果以处理逻辑(动词)为主体,封装数据(名词),就是函数式编程里的闭包。
相关推荐
本文实例讲述了JS页面获取 session 值,作用域和闭包。分享给大家供大家参考,具体如下: Javascript获取session的值: var name= "${sessioScope.变量名}"; 注意这里面需要使用 “” 把 El 表达式给括起来,否则...
从更新记录来看,作者雨痕从2012年1月开始学习Go语言,并在学习过程中不断更新笔记内容,纠正错误,并添加了更多细节。这表明了Go语言的学习和笔记的编写是一个持续的过程。 总结来说,这份学习笔记为学习Go语言的...
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现
本文实例讲述了JS学习笔记之闭包小案例。分享给大家供大家参考,具体如下: 直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</...
Go语言学习笔记.pdf 共174页 Go语言学习笔记.pdf 共174页是一本关于Go语言的详细学习笔记,涵盖了Go语言的基础知识、函数、数组、Maps、Structs、接口、并发、程序结构、标准库等方面的内容。本笔记共分为三大部分...
【描述】"我的h5前端学习笔记"表明这是一份个人的学习记录,可能包含了作者在探索HTML5前端开发过程中对各个方面的理解和实践总结。学习笔记通常包括了基础概念、关键特性、实用技巧以及常见问题的解决方法。 ...
7. Rust闭包:Rust学习笔记Day 23-24讲述了Rust的闭包,包括闭包的定义、闭包的使用场景、闭包的实现等。 8. Rust库和生态系统:Rust学习笔记Day 25讲述了Rust的库和生态系统,包括Rust的标准库、 THIRD-PARTY库和...
`CreateConvexHull.v11.suo`是用户配置文件,记录了开发环境的个人设置。`CreateConvexHull`可能是程序的主入口文件,`Data`目录则包含了用于演示的数据。 在实际应用中,根据距离分区域计算凸闭包多边形的方法可以...
《王纯业的Python学习笔记》是一份专为Python初学者和进阶者设计的学习资料,旨在帮助读者全面掌握这门强大的编程语言。Python作为一门高级编程语言,因其简洁、易读的语法特性,被广泛应用于数据分析、机器学习、...
这份“Python语言学习笔记”是一份开源文档,最初发布在GitHub上,作者希望借助...可以看出,作者对Python有着深厚的理解和热爱,这份文档不仅记录了作者的学习经历,也为其他Python学习者提供了一份宝贵的学习资料。
"Python学习笔记+源码练习"是一个适合初学者的资源包,旨在帮助你从零基础开始掌握Python编程。这份资料包含了理论知识讲解和实际代码实践,使学习过程更为直观和实用。 在学习Python时,笔记是关键,它们可以帮助...
"Go语言学习笔记" Go语言学习笔记是关于Go语言基础入门篇的笔记,主要介绍Go语言基础语法、数据类型、逻辑语句等相关知识点。 语言概述 Go语言是一种开源的编程语言,能让构造简单、可靠且高效的软件变得容易。Go...
3. 延迟执行或记忆化:闭包可以保存函数的状态,比如在事件处理中,可以记录最后一次的操作状态。 4. 内存管理:闭包可以控制变量的生命周期,避免不必要的内存泄漏。 闭包的工作原理: 当一个函数返回另一个函数...
本文实例讲述了JavaScript闭包原理与用法。分享给大家供大家参考,具体如下: 闭包(Closure) 闭包是一个函数和词法环境的组合,函数声明在这个词法环境中。 词法作用域: 看下面的一个例子: function init() { ...
本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...
笔记中详细介绍了函数的定义、调用、参数传递、缺省参数、全局变量、局部变量、Nonlocal语句、Lambda表达式、eval()和exec()、函数式编程、高阶函数、递归函数、闭包和装饰器。模块(Module)部分讲解了如何导入和...