关于闭包

什么是闭包

闭包是一个形式。。。想怎么用都好,其实严格来说,也算是一种闭包,方法和数据都封装在内部,保持一个完整结构,不受外部感染干扰或者恶意访问,符合闭包的基本概念。

为什么会有闭包这个称呼

因为以前JavaScript不是闭包的,所有的方法都在根目录上面 页面上一大堆function定义搞得非常杂乱实际上从1.3开始就支持这个功能 后来有人发现如果你的项目很大 写的功能很多 很杂乱 从jquery开始 就开始封装 以一种模块化的方式 开始出现 后来写的这种东西 都尽量使用这样模块化 不会引起污染 因为出现了在一个页面封装了大量的功能 所有的功能都在一个页面实现 页面调用都用了ajax 页面本身不换页面 这个时候情况下 你写的东西都会被互相污染 所以必须封装在各自的类里面 因为这个发展的技术体现下 这个闭包的技术被提出来 而且作为一种规范使用。

如何正确使用闭包

一个函数体如果他使用了变量是他自己的 不需要外部的直接去改变尽量把这个东西封装在这个结构体之内 同时把他的私有方法都定义成顶级方法 定义成结构体的私有方法 结构体方法说是私有 但是JavaScript没有保护机制 外面是可以调用的 但是他必须调用这个结构体才能调 这样保证他的安全性 还有一种就是函数体上的闭包 是另外一个意思 函数体的闭包 函数的内部变量不想被外部干扰 也就是在函数体定义很多var 一般来说 被调的时候一般不会被外部去取到的 但是有一种情况不一样 如果这个东西定义成根函数 外面去取的时候就会变成window顶级变量这种情况 所以就会出现那种出现一个匿名函数只调一次不希望他的变量被覆盖。

闭包的缺点

所有的闭包相当于在他的内存里面有一份永久保存的量他会一直留着 如果一些东西确实要留着 这个也无所谓 现在内存都大了 这个问题很小。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值