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

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.

主站蜘蛛池模板: 长宁县| 南皮县| 阳泉市| 边坝县| 科技| 永年县| 吴江市| 宝坻区| 海晏县| 门源| 车致| 中宁县| 普洱| 和平区| 泰来县| 曲沃县| 米脂县| 万源市| 古交市| 青河县| 稻城县| 萝北县| 美姑县| 桂平市| 宣城市| 彝良县| 观塘区| 建湖县| 石家庄市| 吉首市| 深水埗区| 郑州市| 西宁市| 肥东县| 永川市| 准格尔旗| 紫金县| 尼玛县| 商丘市| 隆安县| 布尔津县|