雄辩的方式打破了一个大班

时间:2016-05-15 13:39:31

标签: javascript ecmascript-6

我有一个有很多方法的课。即使在重构之后拔出不使用this上下文的块,每种方法仍然是几百行:

class BigFella {
  constructor() {
    // lots of stuff
  }

  bigMethod1() {
    // 300 LOCs
  }

  bigMethod2() {
    // 300 LOCs
  }
}

很高兴为每个方法提供自己的文件,但我能想到的唯一方法就是:

import classMethod1 from './classMethod1';
class BigFella {
  constructor() {
    // lots of stuff
  }

  bigMethod1(a,b) {
    return classMethod1.call(this, a,b);
  }
}

这是最好的模式吗?通过使用呼叫对性能有何影响?我应该吮吸它吗?有一个2000+的LOC文件?

1 个答案:

答案 0 :(得分:1)

在node.js中,您可以混合使用ES6和prototype形式:

想象一下class1.js文件:

"use strict";

class BigFella {
  constructor() {
    console.log('cons');
  }

  bigMethod1() {
    console.log('big1');
  }

  main() {
    this.bigMethod1();
    this.bigMethod2();
  }
}

module.exports = BigFella;

在class1b.js文件中扩展:

"use strict";

// import BigFella from './class1.js'; Does not works in nodejs

var BigFella = require('./class1.js');

BigFella.prototype.bigMethod2 = function() {
  console.log('big2');
}

var b=new BigFella();
b.main();