官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 阜宁县| 潮州市| 绥宁县| 安龙县| 宣威市| 原阳县| 金华市| 彭水| 英德市| 遂川县| 依兰县| 娱乐| 阳城县| 永吉县| 宁明县| 南汇区| 吐鲁番市| 遵义县| 家居| 淮安市| 衡东县| 财经| 武川县| 嘉禾县| 加查县| 廊坊市| 芜湖市| 杭锦后旗| 土默特左旗| 九台市| 耒阳市| 怀宁县| 杭锦旗| 高雄市| 太原市| 军事| 大竹县| 绵竹市| 宣汉县| 芦溪县| 望奎县|