1

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

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

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

但我不明白这是什么() =>意思。

如果有人能告诉我这是什么意思,将不胜感激。

提前致谢。

4

3 回答 3

5

他们叫Arrow functions

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

Mozilla 文档

简而言之,它是function(){}除了this上下文的替代品

这是您的代码的外观:

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

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

无论如何,它是一个ES6 功能,您可以在链接中探索更多类似的功能:P

于 2017-04-22T13:38:03.963 回答
1

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

于 2017-04-22T13:37:50.107 回答
1

ES6 箭头函数

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

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

箭头函数的绝妙之处在于您仍然可以this在上下文中使用。您不必let self = this;在函数之外定义类似的东西。

于 2017-04-22T13:39:51.553 回答