最近看了很多重新大谈关于闭包的资料,越看越不懂。我们现在有了箭头函数,有了块级作用于,有了很多以前没有的方便开发的方法。而我所接触到的闭包应用,完全可以靠定义一个对象并操作其属性完成。个人理解,闭包的价值在于其可以在不污染全局变量的前提下维持函数的作用域链,但是我看了很多例子,发现这些实现多数都可以靠定义一个对象完成。且对比下来,这些例子的代码易读性也特别可怕,this套_this套self套_self实在可怕。很多人也拿立即执行函数来讲闭包,然而立即执行函数其自身就有代码质量风险(分号问题)。前几年还流行过谈函数式编程,结果却没流行起来,我倒觉得函数式编程更容易使用和维护。为什么闭包却杀回马枪了?可能我没有描述清楚啥是回马枪。我最近接触的几个项目,原本都是定义对象之后操作对象来实现功能的,闭包这个概念并不放在台面上。最近认识的几个人一直在大谈闭包,并且原本可以使用操作对象属性的一些功能设计全部改成了网上很容易搜到的闭包使用。代码易读性大打折扣。项目中也是不推荐不同代码风格混用的。如果在对象操作VS闭包两者之间进行排他性选择,到底该选哪个。
呼啦一阵风
倚天杖
相关分类