`

闭包学习记录

 
阅读更多
function 王老吉(){   
    var 剩余=100;   
     return function(){   
        剩余--;   
      console.log(剩余内含饮料);   
    }   
}  
var 喝王老吉=王老吉();   
喝王老吉();//剩下99   
//干别的事情   
喝王老吉()//剩下98  

 

不知道这样的例子能不能很清楚的描述成一个闭包的作用:

1、避免每次喝王老吉时,饮料都是100开始计数(用外面的术语 讲就是避免函数执行完成后被释放。)

2、如果不使用这样的写法,就得把计数器暴露在外面

代码如下

 

var 剩余=100   
function 喝王老吉(){   
      剩余--;   
}   
喝王老吉();//剩下99   
//干别的事情   
喝王老吉()//剩下98  

 

这很不合理,因为“剩余”这个变量是属于王老吉本身的。

 

在早期的面向结构编程中,数据和处理逻辑是分开的。后来人们发现这样有很多问题,就把关联的数据和处理逻辑绑定起来。如果以数据(名词)为主体,封装处理逻辑(动词),就是面向对象编程里的对象。如果以处理逻辑(动词)为主体,封装数据(名词),就是函数式编程里的闭包。

分享到:
评论

相关推荐

    JS页面获取 session 值,作用域和闭包学习笔记

    本文实例讲述了JS页面获取 session 值,作用域和闭包。分享给大家供大家参考,具体如下: Javascript获取session的值: var name= "${sessioScope.变量名}"; 注意这里面需要使用 “” 把 El 表达式给括起来,否则...

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

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

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

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

    Lua学习笔记之函数、变长参数、closure(闭包)、select等

    主要介绍了Lua学习笔记之函数、变长参数、closure(闭包)、select等,本文着重讲解了这些特性的用法,并给出代码实例,需要的朋友可以参考下

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

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

    python学习笔记

    python 基础学习笔记内容位自学阶段所记录 从数据结构 到函数 对象 闭包 装饰器 正则表达式.....短小精悍,适合闲读。本来想直接发出来,pdf没办法上传到博客,我已经一年多不更博客了。

    前端学习笔记小知识点10篇.rar

    包含1undefined和null区别2 普通字符串和new String有什么区别3 js单线程4js运行机制和存储5js垃圾回收机制6听了好多闭包,这次可能最懂7正则前瞻8作者为什么设计原型9函数和对象之间的关系10原型链 可作为笔记和...

    3.29 python函数2(生成器&列表表达式&生成器表达式&匿名函数&闭包&装饰器) 学习笔记

    文章目录正文:1 生成器1)生成器:2 生成器表达式、列表推导式1)列表推导式2)生成器表达式3 内置函数1)比较重要2)*非常重要*3)挺重要4 匿名函数5 闭包1)定义2)特点3)作用4)判断6 装饰器1)开放封闭原则2)...

    Javascript学习笔记之 函数篇(三) : 闭包和引用

    Javascript 中一个最重要的特性就是闭包的使用。因为闭包的使用,当前作用域总可以访问外部的作用域。因为 Javascript 没有块级作用域,只有函数作用域,所以闭包的使用与函数是紧密相关的。 模拟私有变量 代码如下...

    JavaScript闭包相关知识解析

    以下是我学习闭包的记录,希望对你有些帮助。 变量作用域 在学习闭包之前,我们首先要理解JavaScript不同与其他语言独特的变量作用域。在JavaScript中,不存在局部作用域的概念,但是有全局作用域以及函数作用域。...

    JavaScript-学习笔记.docx

    自己学习笔记。视频:腾讯课堂:渡一教育 内容大纲: 预编译: 函数 闭包问题 对象 原型、原型链、call、apply 继承模式 对象克隆 数组 类数组 数组去重 自定义type方法(类似于typeof) try-catch es5.0严格模式 ...

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

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

    Swift的入门教程和读书笔记,主要涵盖了Swift的基础知识和关键技术,适用于初学者自我学习和教学使用

    这份Swift入门教程和读书笔记是一份详尽的学习资料,它涵盖了Swift编程语言的基础知识,包括语法、数据类型、控制流、函数、闭包、面向对象编程等内容。同时,它还包含了大量的示例代码和实践练习,帮助读者更好地...

    全国计算机等级考试二级python的学习笔记

    全国计算机等级考试二级Python学习笔记可以从以下几个方面进行总结: 1. Python基础知识 - Python语法基础:变量、数据类型、运算符、流程控制语句等。 - Python常用内置数据结构:列表、元组、字典、集合的定义、...

Global site tag (gtag.js) - Google Analytics