我不明白下面的代码键=>key.addEventListener你能有人解释一下这行吗?
const keys = Array.from(document.querySelectorAll('.key'));
keys.forEach(key => key.addEventListener('transitionend', removeTransition));
这 (keys.forEach(key=>....)
( 等效于以下内容:
keys.forEach(function(key){ key.addEventListener('transitionend', removeTransition)});
将后者与带有箭头函数表达式的版本进行比较,key => key.addEventListener('transitionend', removeTransition)
,我认为带有箭头的版本更简洁。
正如这里所说:
更箭头函数表达式的语法比函数短 表达式并且不绑定自己的 this、参数、super,或 这些函数表达式最适合非方法。 函数,并且它们不能用作构造函数。
短的语法肯定意味着更易读的代码。更易读的代码意味着更容易快速赶上,序列更容易维护。
=>
称为箭头函数。它是定义函数的速记方法。
keys.forEach(function(key){console.log(key)})
可以表示为箭头函数
keys.forEach(key => {console.log(key)})
key
是从forEach
传递的第一个参数,在本例中为currentValue
。如果需要,您可以将其扩展为:
keys.forEach((currentValue, index, array) => {...})
如果您需要访问 forEach
中提供的其他参数。
有关箭头函数的更多详细信息,请参阅 MDN 文档。
key => key.addEventListener('transitionend', removeTransition)
相当于类似
function(key){
return key.addEventListener('transitionend', removeTransition) // binding custom event to event listener
}()