摘要:闭包在解释闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。再把这个函数赋值给多个变量执行时,会依次创建多个闭包引入的变量副本,并且相互不会污染。
闭包在 ECMAScript 解释
闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。
地址: https://www.w3cschool.cn/ecma...
下面说一下我自己对闭包的理解
什么样的代码叫做闭包下面是一个简单的闭包代码
var name = "张三" function sayName() { console.log(name); } // 执行 sayName(); // 张三
个人理解:只要函数内使用了不是函数内定义的变量,这个函数就称之为“闭包”。
因为在函数载入内存时,不清楚 name 正正的值,直到在执行时才直到 name 具体的值。
一个购物车的函数,函数内有 商品数量 的变量和 购买 的闭包
// 购物车 function shoppingCart() { var goodsNum = 0 // 购买 function buy() { goodsNum++ console.log("当前商品数量:" + goodsNum) } return buy } var buy = shoppingCart() buy(); // 当前商品数量: 1 buy(); // 当前商品数量: 2 buy(); // 当前商品数量: 3
执行后发现程序会一直保留商品数量的变量,因为引用的是函数外部的变量,不清楚变量具体的值,所以变量一直不会被释放。这样的话在做个例子。
通过下面的例子总结一下:下面这段代码,buy这个函数是一个闭包,因为它引用了内部以外的变量。再把这个函数赋值给多个变量执行时,会依次创建多个闭包引入的变量副本,并且相互不会污染。
// 购物车 function shoppingCart() { var goodsNum = 0 // 购买 function buy() { goodsNum++ console.log("当前商品数量:" + goodsNum) } return buy } var tomBuy = shoppingCart() var jackBuy = shoppingCart() tomBuy(); // 当前商品数量: 1 jackBuy(); // 当前商品数量: 1 tomBuy(); // 当前商品数量: 2 jackBuy(); // 当前商品数量: 2 tomBuy(); // 当前商品数量: 3 jackBuy(); // 当前商品数量: 3结
函数内引用了外部的变量,这个函数称为闭包
闭包内引入的变量不会被释放,会一直保留状态
闭包赋给多个变量执行,每个闭包内的变量状态,相互不会污染
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/103281.html
摘要:组件化编码的一切都是基于组件的。属性返回目标节点的前一个兄弟节点。如果目标节点前面没有同属于一个父节点的节点,将返回属性是一个只读属性。而当变量离开环境时,则将其标记为离开环境。 第一次写面试经历,虽然之前有过一些电话面试经历,但相对而言感觉此次的经历对自己收获还是比较大,这里留下面经当作日记吧!(面试时间:2018-6-12 下午2:10;时长:50min;公司:*) 1、说说Rea...
摘要:组件化编码的一切都是基于组件的。属性返回目标节点的前一个兄弟节点。如果目标节点前面没有同属于一个父节点的节点,将返回属性是一个只读属性。而当变量离开环境时,则将其标记为离开环境。 第一次写面试经历,虽然之前有过一些电话面试经历,但相对而言感觉此次的经历对自己收获还是比较大,这里留下面经当作日记吧!(面试时间:2018-6-12 下午2:10;时长:50min;公司:*) 1、说说Rea...
摘要:张三李四李四李四链式作用域函数包含在函数中,这是函数所有局部变量对函数可见,但是相反是不行的。局部变量必须使用声明,否则声明的是全局变量。父级函数变量对所有子函数可见,子函数会一级一级向上寻找变量。 引言 一直从事服务端开发。由于近年来前端迅速发展,所以想入坑前端行列,虽然一直有接触并开发前端相关的项目,但是想要做前端的工作决定系统的学习一下前端,就先从变量开始吧! 变量的作用域 在j...
摘要:面试时间晚上时长小时分钟公司,一面一简单的介绍下自己介绍的真的很简单。。。。。。二平时都是怎么学习前端的学习前端的话,我主要是以书籍为主然后是网站视频博客文档等学习理论,之后再通过代码实践。。。 大概是在6月11号在Boss直聘投的简历,6月12号中午收到电话约的面试时间,刚开始说是13号晚上7点;后面可能时间有变,中午来了个电话说改到9-10点;怎么说算是第一次面试自己目标公司之一吧...
阅读 623·2021-11-23 09:51
阅读 3559·2021-11-15 11:38
阅读 891·2021-10-14 09:42
阅读 3091·2021-09-29 09:35
阅读 2039·2021-09-03 10:33
阅读 739·2021-07-30 16:33
阅读 1529·2019-08-30 15:55
阅读 1818·2019-08-30 14:04