在类中使用const和箭头函数时的SyntaxError

时间:2018-02-20 01:03:53

标签: javascript class

我正在处理一些CodeWars katas,我想知道:这个语法有什么用呢?

class SmallestIntegerFinder {
  findSmallestInt(args) {
    return Math.min(...args)
  }
}

......但是这个不是吗?

class SmallestIntegerFinder {
  const findSmallestInt = args => Math.min(...args)
}

这是打印的错误跟踪:

const findSmallestInt = args => Math.min(...args)
      ^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at 
    at evalScript (bootstrap_node.js:353:27)
    at run (bootstrap_node.js:122:11)
    at run (bootstrap_node.js:389:7)
    at startup (bootstrap_node.js:121:9)
    at bootstrap_node.js:504:3

我在使用其他katas中的第二种语法时没有遇到任何问题,但这是我第一次在一个类中使用它,所以我想它与JavaScript类有关,我没有&#39;现在还没学到什么,或者其他什么东西正在逃避我。

提前致谢!

1 个答案:

答案 0 :(得分:3)

因为那是无效的语法。在类中,您不使用constletvar等变量绑定来定义成员。语法很简单。

然而,有一项提案允许class fields,类似于您的第二个示例。但是,您仍然不能使用constletvar来定义这些内容。

编辑:感谢@Bergi指出类/实例方法语法对于任何事情都不是糖,这就是你如何定义方法。