Javascript 在类内使用const和arrow函数时出现语法错误
我正在研究一些CodeWars katas,我想知道:这种语法为什么会起作用Javascript 在类内使用const和arrow函数时出现语法错误,javascript,class,Javascript,Class,我正在研究一些CodeWars katas,我想知道:这种语法为什么会起作用 class SmallestIntegerFinder { findSmallestInt(args) { return Math.min(...args) } } …但另一个没有 class SmallestIntegerFinder { const findSmallestInt = args => Math.min(...args) } 这是打印的错误跟踪: const findSm
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
const findsmalestint=args=>Math.min(…args)
^^^^^^^^^^^^^^^
SyntaxError:意外的标识符
在createScript上(vm.js:56:10)
在Object.runInThisContext(vm.js:97:10)
反对。([eval]-包装:6:22)
在
在evalScript(bootstrap_node.js:353:27)
运行时(bootstrap_node.js:122:11)
运行时(bootstrap_node.js:389:7)
启动时(bootstrap_node.js:121:9)
在bootstrap_node.js:504:3
我在其他Kata中使用第二种语法没有任何问题,但这是我第一次在类中使用它,所以我想它与我还没有学会的JavaScript类有关,或者与我目前正在逃避的其他东西有关
提前谢谢 这是因为这不是有效的语法。在类中,不使用变量绑定,如
const
、let
或var
来定义成员。语法很好,也很简单
然而,有一个建议将允许,类似于您的第二个示例。但是,您仍然不会使用const
、let
或var
来定义这些
编辑:感谢@Bergi指出类/实例方法语法不是万能的,这只是定义方法的方式。这是因为这不是有效的语法。在类中,不使用变量绑定,如
const
、let
或var
来定义成员。语法很好,也很简单
然而,有一个建议将允许,类似于您的第二个示例。但是,您仍然不会使用const
、let
或var
来定义这些
编辑:感谢@Bergi指出类/实例方法语法不是万能的,这就是您定义方法的方式。ES6不支持类文本中的字段。因为
class
正文不是可以容纳任意语句的块?您是否希望const…=…
在对象文本中工作?ES6不支持类文本中的字段。因为class
正文不是可以容纳任意语句的块?您是否希望const…=…
在对象文本中工作?实际上,方法定义语法不是任何东西的简写,它是类
正文中唯一有效的语法。请注意,与对象文字相比,也没有逗号。谢谢大家!我猜我的错误是考虑到函数和类方法可以使用相同的语法事实上,方法定义语法不是任何东西的简写,它是类
主体中唯一有效的语法。请注意,与对象文字相比,也没有逗号。谢谢大家!我想我的错误是考虑到函数和类方法可以使用相同的语法