我目前正在将我们的Backbone应用程序转换为ES6语法,例如:
action: function(e){},
变成
action(e) {}
然而,现在我有了这样的代码:
throttleEvent: _.throttle(function(e) {
//do stuff
}, 500);
}
我似乎找不到如何将其转换为有效的语法。
throttleEvent _.throttle((e) => {
//do stuff
}, 500);
}
还有
throttleEvent() {
return _.throttle((e) => {
//do stuff
}, 500);
}
但这些都没能奏效。
请帮助将其转换为有效的语法。
2条答案
按热度按时间h7appiyu1#
我不太确定这个简短的语法是否适用于你的例子。
让我们来看看你的开始
你有一个对象,这个对象有一个名为“action”的属性,这个属性保存了一个函数,稍后可以被obj.action()调用。
现在以你为例
同样,你有一个对象,它有一个名为throttleEvent的属性,但主要的区别是值,这个值是函数_.throttle()的return Value。
摘自文档(https://lodash.com/docs/4.17.4#throttle)
创建一个限制函数,该函数每等待毫秒最多只调用func一次
所以你的属性实际上保存了你从库中返回的函数。这就解释了为什么你的第二种方法不起作用。因为在这个版本中,每次你调用对象属性,你创建了一个新的throttle函数。(对于你的第一种解决方案,我认为这是无效的语法)
我认为,如果您真的想使用简短语法,最好的方法是在使用之前将throttle函数分配给一个变量
比如像这样的东西
但是接下来要决定的是ES6语法在这种情况下是否有意义,或者你是否只是坚持你的原始版本
仅仅因为有不同的语法可用,并不意味着您必须总是使用新的语法。在某些情况下,“旧的”实际上更有意义
p4tfgftt2#
请尝试以下语法: