首页 > JS中如何选择是否封装类还是直接IIEF

JS中如何选择是否封装类还是直接IIEF

在开发时,如何判定是否该先封装一个“类”,再实例化去执行,还是直接用IIEF一次性解决?


这个……封装类和 IIFE 好像没啥关联吧?IIFE 主要是防止污染全局命名空间,不管你有没有封装类都应该用 IIFE 包裹一下,这算是个通用的“最佳实践”吧。

当然如果你用了模块加载系统,或直接上 ES6 modules,那么 IIFE 的使命倒是可以就此终结了呢。

至于要不要封装“类”,这个其实是根据具体情况来分析的,更重要的是不用“类”的思维来判断,而是想象成为“对象的模版”,这样的话其实还有很多模式可以适应不同的需求,倒是没必要局限在“类”——也就是通常意义的“构造器函数模式”上了。

而具体到个人的选择,也就是如何判定这件事情上,我想也不会有什么绝对权威的方法,我个人的习惯还是把 JavaScript 当成脚本语言来用,那么既然如此一开始的时候我都是怎么方便怎么简单怎么写,直到开始决定抽象或是解藕之类的事情之后才去选择合适的模式来构造代码。

另外,对于代码的构造或者可以直接说是代码设计应该是一个长期的,“活性的”过程。一段代码或许开始是构造器方式实现的,但也许过一阵子就发现可以用别的模式来重新构造一下会更好。所以我个人向来都是不喜欢把自己的思路局限在某种套路上的。我觉得学会高效率的重构+测试,再加上不断完善和补充学习各种技巧(比如函数式编程)要比总是去“套模式”更重要,所谓“无招胜有招”大概就是这个意思吧。

【热门文章】
【热门文章】