| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> js闭包问题 -> 正文阅读 |
|
[JavaScript知识库]js闭包问题 |
下面谈谈我对闭包的学习 总结一些自己的理解 一. 怎么样才算是闭包 或者说 什么是闭包 答:最浅显的也是最容易的懂的回答就是 函数里调用函数
以上举例一个最简单闭包写法 a1就是 我们内部函数返回的a1 读到这里如果还不明白的话 请往下看 二.为什么要用闭包 或者说 闭包有什么作用 继上文可以看到 在内存中,我们通过闭包为a1生成了内存空间 如果不使用闭包的话呢
打印一下 我们都知道? let在函数内定义的变量在调用函数会被垃圾回收机制回收 下面放一下两个的代码对比? 有需要可以运行一下
所以第二个问题的答案就是? 闭包可以为变量生成内存空间延长变量的生命周期,但是此变量只能在调用该函数时使用,其他函数不可访问此变量 除此之外闭包存在的意义还有一个 闭包可以创建私有环境? ?下面我来给大家解释一下 先上代码
这里是我写的一个小例子 由上文解释可以看出这属于一个闭包 ?由打印的结果可以看出? res1,res2两个分别有自己的私有环境? 进行增加互不干扰 看到这里可能有同学会联想到一个问题 vue里面的data为什么是一个函数而不是一个对象
这是们常见的写法? 大概可以看出? 这也是运用了闭包吧 答案 是 由于vue属于单页面多组件的开发模式 如果运用了对象的写法? 那么会导致多组件共享数据? 那么不就乱套了 所以这里也是运用到了闭包的创建私有环境的功能了 以上仅是个人理解? 如果我的理解有问题请大家留言或者私信我? 以免社死? 谢谢 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 13:29:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |