我在理解ES6箭头函数语法时遇到问题。为什么这段代码不起作用:
Meteor.publish('parties', (options, searchString) => {
...
})
但是这个有效:
Meteor.publish('parties', function (options, searchString) {
...
})
答案 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