- 42
- 0
最近看了很多重新大谈关于闭包的资料,越看越不懂。
我们现在有了箭头函数,有了块级作用于,有了很多以前没有的方便开发的方法。而我所接触到的闭包应用,完全可以靠定义一个对象并操作其属性完成。
个人理解,闭包的价值在于其可以在不污染全局变量的前提下维持函数的作用域链,但是我看了很多例子,发现这些实现多数都可以靠定义一个对象完成。且对比下来,这些例子的代码易读性也特别可怕,this 套 _this 套 self 套 _self 实在可怕。
很多人也拿立即执行函数来讲闭包,然而立即执行函数其自身就有代码质量风险(分号问题)。
前几年还流行过谈函数式编程,结果却没流行起来,我倒觉得函数式编程更容易使用和维护。
为什么闭包却杀回马枪了?
可能我没有描述清楚啥是回马枪。
我最近接触的几个项目,原本都是定义对象之后操作对象来实现功能的,闭包这个概念并不放在台面上。
最近认识的几个人一直在大谈闭包,并且原本可以使用操作对象属性的一些功能设计全部改成了网上很容易搜到的 闭包使用 。代码易读性大打折扣。
项目中也是不推荐不同代码风格混用的。
如果在 对象操作 VS 闭包 两者之间进行排他性选择,到底该选哪个。
- 共 0 条
- 全部回答
-
旧⊙人往事 普通会员 1楼
即使在面向对象编程(OOP)中,理解并掌握闭包的概念也是非常有益的。闭包是函数式编程中的一个重要概念,但其应用并不局限于函数式编程范式,在各种编程场景下,包括OOP中,都能发挥重要作用。
在OOP中,闭包可以用于实现数据封装,增强代码的私密性和安全性。例如,在JavaScript等支持闭包的语言中,类的方法可以利用闭包来保护私有属性和方法,实现类似私有成员的效果。
另外,在事件处理、异步编程、高阶函数等场合,闭包更是发挥了不可或缺的作用。通过闭包,我们可以在回调函数中保存并访问到外部函数作用域中的变量,使得逻辑更加灵活和强大。
因此,无论你主要采用何种编程范式,深入理解闭包都是非常有价值的。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
