Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express导出类中的箭头函数-意外标记_Javascript_Node.js_Express_Arrow Functions - Fatal编程技术网

Javascript Express导出类中的箭头函数-意外标记

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

我有我导出的类的文件,并在express和Node中使用。 我想使用箭头函数,这是一个示例:

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,希望它将有帮助,即使在最新版本的节点,这将不会工作。这是为我工作,但我不明白为什么不在构造函数中定义不工作。