首页 > immutable源码Range类继承了父类,但在构造函数中,没有super(),这好像不符合ES6的语法,为什么可以这么写?

immutable源码Range类继承了父类,但在构造函数中,没有super(),这好像不符合ES6的语法,为什么可以这么写?

export class Range extends IndexedSeq {

  constructor(start, end, step) {
    if (!(this instanceof Range)) {
      return new Range(start, end, step);
    }
    invariant(step !== 0, 'Cannot step a Range by 0');
    start = start || 0;
    if (end === undefined) {
      end = Infinity;
    }
    step = step === undefined ? 1 : Math.abs(step);
    if (end < start) {
      step = -step;
    }
    this._start = start;
    this._end = end;
    this._step = step;
    this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);
    if (this.size === 0) {
      if (EMPTY_RANGE) {
        return EMPTY_RANGE;
      }
      EMPTY_RANGE = this;
    }
  }

因为 immutable.js 的构建时转译 js 用的是已经被抛弃的 react-tools,而 react-tools 的 transform 是他们自己写的,想怎么转就怎么转,不按照 ES6 来也没关系。

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