Javascript Express导出类中的箭头函数-意外标记
我有我导出的类的文件,并在express和Node中使用。 我想使用箭头函数,这是一个示例:Javascript Express导出类中的箭头函数-意外标记,javascript,node.js,express,arrow-functions,Javascript,Node.js,Express,Arrow Functions,我有我导出的类的文件,并在express和Node中使用。 我想使用箭头函数,这是一个示例: class MyClass { myFunc(arg) { console.log(arg); } myArrowFunc = (arg1, arg2) => { console.log(arg1); console.log(arg2); }; } module.exports = { MyClass
class MyClass {
myFunc(arg) {
console.log(arg);
}
myArrowFunc = (arg1, arg2) => {
console.log(arg1);
console.log(arg2);
};
}
module.exports = {
MyClass
}
在添加myArrowFunc之前,一切正常。之后,我在运行应用程序后出现错误:
myArrowFunc = (arg1, arg2) => {
^
SyntaxError: Unexpected token =
我的节点版本是9.x,所以它应该可以工作。。。或者我忘了什么 为了在express app中使用新的Javascript(es6),您需要安装babel以将es6编译为es5代码。Babel编译器将允许您在Express app中使用新的JavaScript功能 在项目中使用babel编译器需要这些依赖项 1) babel cli:使用babel从命令行编译文件 2) babel-preset-es2015:所有es2015插件的babel预置 运行此命令以使用终端在nodejs项目中安装babel
npm install -save-dev babel-cli babel-preset-es2015
请点击这个链接,你不能在这样的课堂上布置作业 为什么不把它放在构造函数中呢?您可以在其中初始化属性 没有必要那样做
class-MyClass{
构造函数(){
this.myArrowFunc=(arg1,arg2)=>{
console.log(arg1);
console.log(arg2);
};
}
myFunc(arg){
控制台日志(arg);
}
}
更新
这现在是可能的(/):
class-MyClass{
arrowFunc=(a,b)=>{
控制台日志(a,b);
}
myFunc(arg){
控制台日志(arg);
}
}
从节点版本v10.x.x
开始,您可以使用node--harmony
为类方法运行带有箭头符号的代码。Harmony flag在语言中启用了新的ECMAScript 6功能。作为箭头函数的方法有什么意义?这样做时,它实际上不是对象的方法,因为this
不会是对象实例。你们到底想解决什么问题?很确定现在节点不需要巴别塔就可以让箭头函数工作。问题在于,类字段或属性初始值设定项(或任何它们被称为)的实验功能尚未进入节点,但它们可以通过babel获得。尝试使用babel处理问题中的代码会给出:SyntaxError:module.js:Unexpected token(7:16)
我不确定。以防万一,如果有人使用旧版本的例如:低于4.x.x,希望它将有帮助,即使在最新版本的节点,这将不会工作。这是为我工作,但我不明白为什么不在构造函数中定义不工作。