首页 > 解决方案 > 我们如何在 ES7 中调用类内部的方法?

问题描述

ES6 简单示例

class MyClass extends SuperClass {
  constructor() {
    super()
    this.myProperty = 'myProperty'
  }
}

在 ES7 中,前面的例子可以写成:

class MyClass extends SuperClass {
  myProperty = 'myProperty'
}

在 ES6 中,我们可以像这样在构造函数中调用方法:

import myMethod from './myMethod'
class MyClass extends SuperClass {
  constructor() {
    super()
    myMethod()
  }
}

在 ES7 中,我们如何调用将被称为构造方法的方法?

import myMethod from './myMethod'
class MyClass extends SuperClass {
  myMethod()
}

语法错误:意外的令牌,应为 {


PS:我知道我仍然可以使用 ES6 语法。但是有没有办法不写构造函数?

标签: javascriptecmascript-2016

解决方案


TL;DR - 你不能,你应该像在 ES6 中那样做。

您对属性所做的事情是类字段声明提案的一部分,您想要的方法声明不是该提案的一部分。

该提案目前处于第 3 阶段,这意味着它还不是官方 ECMAScript 规范的一部分,但可能很快就会出现(可能在 ES2019 中?)。因此,我什至建议不要使用示例中使用的类属性,因为它的语法仍然可能改变。


推荐阅读