exo*_*lav 16 javascript ecmascript-6 arrow-functions
我开始使用ES6胖箭头功能表示法,我非常喜欢它.但我对它的背景有点困惑.据我所知,关键字this fat arrow函数指的是函数当前运行的上下文.我想做一些简单的jQuery迭代,如:
$('ul#mylist > li').each(() => {
$(this).addClass('some-class-name');
});
Run Code Online (Sandbox Code Playgroud)
但显然这段代码不起作用.如何在胖箭头函数中引用此特定代码中的当前"LI"元素?
Igo*_*kin 32
each()方法为回调函数提供两个参数.它们是当前索引和当前项目.因此,您可以执行以下操作:
$('ul#mylist > li').each((i, v) => {
$(v).addClass('some-class-name');
});
Run Code Online (Sandbox Code Playgroud)
其中"v"变量是当前的"li"元素
因为箭头函数上下文中的this与调用上下文相同。
该each
函数提供一个当前元素作为回调的第二个参数,所以
$('ul#mylist > li').each((i, el) => {
$(el).addClass('some-class-name');
});
Run Code Online (Sandbox Code Playgroud)
或者在给定的情况下不需要循环
$('ul#mylist > li').addClass('some-class-name');
Run Code Online (Sandbox Code Playgroud)