ECMAScript6

强迫症的模块化

在ES2015发布后,JavaScript最终也有了一个标准的模块化方案,而同时从webpack开始,也带来了一波“一切皆模块”的潮流。整个2015-2016的前端发展中,除去在UI层不断的努力和突破外,几乎每一件事都和模块化脱不开关系。 本文也试图从几个方面简单地说一下模块化,并分析一些在模块化实施中产生的误区。 模块的本质 模块化顾名思义,指的必然是将程序拆分为多个“模块”,使用模块间通信的方式进行交互。这和其它对程序逻辑进行拆分的手段是一样的,无论是拆成类、拆成对象还是拆成啥,其目的无非是隔离内部的实现以及声明对外的接口。 事实上自远古时代起,JavaScript就在努力进行实现封装的尝试,无论是通过IIFE避免全局变量,还是基于Namespace进行管理,以至后期的AMD、CJS社区模块化方案,直到现在的ES Module标准模块化,无不以上为目的。 在模块化的思想里,一个模块应该是: 需要一系列的依赖。 涉及一个内部的实现。

JavaScript

ES Decorators简介

我跟你说,我最讨厌“简介”这种文章了,要不是语文是体育老师教的,早就换标题了! Decorators是ECMAScript现在处于Stage 1的一个提案。当然ECMAScript会有很多新的特性,特地介绍这一个是因为它能够在实际的编程中提供很大的帮助,甚至于改变不少功能的设计。 先说说怎么回事 如果光从概念上来介绍的话,官方是这么说的: Decorators make it possible to annotate and modify classes and properties at design time. 我翻译一下: 装饰器让你可以在设计时对类和类的属性进行注解和修改。 什么鬼,说人话! 所以我们还是用一段代码来看一下好了: