Javascript es6类语法模式

时间:2016-11-10 21:02:04

标签: javascript class ecmascript-6

我正在研究节点模块,我想继续使用es6类语法来保证样式的一致性,但我发现这种模式无法重现:

big_city_population

这个函数的奇怪之处在于我可以将它称为标准构造函数并使用他的方法和道具来获取一个人但是我也可以将man称为函数并获得与调用他的方法“说”相同的结果。 基本上man('text')产生与man.say相同的效果('text'); 如何使用es6类语法重新创建此模式?

1 个答案:

答案 0 :(得分:1)

  

基本上man('text')产生与man.say('text')

相同的效果

最好不要使用这种模式。

  

如何使用es6类语法重新创建此模式?

你可以这样做extending Function

export default class {
    constructor(options) {
        const man = sentence => this.say(sentence);
        Object.setPrototypeOf(man, new.target.prototype);

        man.opts = options || {};
        man.age = 29;

        return man;
    }
    say(sentence) {
        console.log(sentence);
    }
}