ES6箭头功能

ES6 arrow functions

本文关键字:功能 ES6      更新时间:2023-09-26

我在理解ES6箭头函数语法时遇到问题。为什么此代码不起作用:

Meteor.publish('parties', (options, searchString) => {
...
}) 

但这个有效:

Meteor.publish('parties', function (options, searchString) {
...
}) 

示例一和示例二之间的主要区别在于,示例一使用调用范围,而示例二使用Meteors范围。如果非要我做一个猜测,那就是它不起作用,因为您使用的是this,并期望有一个不同的作用域。下面是一个演示此功能的快速示例。。。

(function () {
    var Example = (function () {
        function Example() {
            setTimeout(function() {
                console.log(this); //this === window
            }, 0);
            setTimeout(() => {
                console.log(this); //this === test
            }, 0);
        }        
        return Example;
    }());
    var test = new Example();
}());

您可以在这里阅读有关的详细信息