什么()=> {}表示在gulpfile.js中

时间:2017-04-22 13:35:37

标签: javascript gulp gulp-browser-sync

我在js的学习路径中,刚开始使用yeoman发生器。我使用gulp进行预处理和其他工作。当我浏览gulpfile.js时,我发现了这段代码。

gulp.task('serve', ['styles', 'html', 'watch'], () => {
    browserSync({
        notify: false,
        port: 9000,
        server: {
            baseDir: 'app'
        }
    })
});

我可以理解,当我们执行gulp-serve时,它会运行样式,html和监视任务,并在端口9000中打开一个开发服务器。

但我不明白这个() =>意味着什么。

如果有人能告诉我这是什么意思,那将非常感激。

提前致谢。

3 个答案:

答案 0 :(得分:5)

他们被称为Arrow functions

  

箭头函数表达式的语法短于函数   表达式并不绑定它自己的this,arguments,super或   new.target。这些函数表达式最适合非方法   函数,它们不能用作构造函数。

Mozilla Docs

简单来说,除function(){}上下文

外,它可替代this

这就是你的代码的样子:

gulp.task('serve', ['styles', 'html', 'watch'], function() {
    browserSync({
        notify: false,
        port: 9000,
        server: {
            baseDir: 'app'
        }
    })
});

(作为第三个参数传入的匿名函数)

这是 ES6功能无论如何,你可以在this链接中探索更多这样的功能:P

答案 1 :(得分:1)

它定义了一个不带参数的内联函数。函数的主体在{}中。然后,这个新函数作为回调传递给task()函数。

答案 2 :(得分:1)

ES6箭头功能

它是一个匿名函数。您拥有的代码可能是

gulp.task('serve', ['styles', 'html', 'watch'], function () { browserSync({ notify: false, port: 9000, server: { baseDir: 'app' } }) });

关于箭头函数的一个很棒的事情是你仍然可以在上下文中使用this。你不必在函数之外定义类似let self = this;的东西。