2016-04-11 9 views
11

के साथ मैंने ES6 वसा तीर फ़ंक्शन नोटेशन का उपयोग करना शुरू किया और मुझे वाकई यह पसंद आया। लेकिन मैं इसके संदर्भ में थोड़ा उलझन में हूं। जहां तक ​​मुझे पता है, वसा तीर फ़ंक्शन के अंदर यह कीवर्ड उस संदर्भ को संदर्भित करता है जहां फ़ंक्शन वर्तमान में चल रहा है। मैं कुछ सरल jQuery पुनरावृत्ति करना चाहता था जैसे:

$('ul#mylist > li').each(() => { 
    $(this).addClass('some-class-name'); 
}); 

लेकिन स्पष्ट रूप से कोड का यह टुकड़ा काम नहीं कर रहा है। इस विशिष्ट कोड में वर्तमान "LI" तत्व के लिए, मैं वसा तीर फ़ंक्शन के अंदर कैसे संदर्भित करूं?

धन्यवाद।

उत्तर

20

है प्रत्येक() विधि आपूर्ति कॉलबैक-फ़ंक्शन के लिए दो पैरामीटर। वे वर्तमान सूचकांक और वर्तमान आइटम हैं। इस प्रकार तुम कर सकते हो निम्नलिखित:

$('ul#mylist > li').each((i, v) => { 
    $(v).addClass('some-class-name'); 
}); 

कहाँ "वी" चर वर्तमान "ली" तत्व

है
3

क्योंकि तीर फ़ंक्शन संदर्भ में this कॉलिंग संदर्भ के समान है।

each समारोह कॉलबैक करने के लिए दूसरा तर्क के रूप में एक वर्तमान तत्व प्रदान करता है ताकि

$('ul#mylist > li').each((i, el) => { 
    $(el).addClass('some-class-name'); 
}); 

या दिए गए मामले में पाश करने की कोई जरूरत

$('ul#mylist > li').addClass('some-class-name'); 
संबंधित मुद्दे