- Mastering JavaScript Design Patterns
- Simon Timms
- 193字
- 2021-08-05 17:14:57
ECMAScript 6 classes and modules
We've seen so far that it is perfectly possible to build classes and even modules in JavaScript. The syntax is, obviously, a bit more involved than in a language such as C# or Java. Fortunately, the next version of JavaScript, ECMAScript 6 (also known as Harmony), brings support for some syntactic sugar for making classes:
class Castle extends Westeros.Structures.BaseStructure { constructor(name, allegience) { super(name); ... } Build() { ... super.Build(); } }
ECMAScript 6 also brings a well thought out module system for JavaScript. There is syntactic sugar for creating modules which looks like:
module 'Westeros' { export function Rule(rulerName, house) { ... return "Long live " + rulerName + " of house " + house; } }
As modules can contain functions, they can, of course, contain classes. ECMAScript 6 also defines a module import syntax, and support for retrieving modules from remote locations. Importing a module looks like this:
import westeros from 'Westeros'; module JSON from 'http://json.org/modules/json2.js'; westeros.Rule("Rob Stark", "Stark");
Some of this syntactic sugar is available with current JavaScript, but it does require some additional tooling, which is outlined in Chapter 12, ES6 Solutions Today.