ES6箭头功能

时间:2015-12-18 16:22:06

标签: javascript meteor ecmascript-6

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

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

但是这个有效:

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

1 个答案:

答案 0 :(得分:4)

示例一和示例二之间的主要区别在于示例一使用调用范围,而示例二使用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();
}());

您可以阅读详细信息here