2012-11-02 15 views
7

के बीच अंतर मैं underscore js विधियों _.each और _.invoke के बीच अंतर को समझने में सक्षम नहीं हूं।
दोनों प्रत्येक आइटम पर दिए गए फ़ंक्शन का आह्वान करते हैं।अंडरस्कोर जेएस _.each विधि और _.invoke विधि

किस परिदृश्य के तहत मैं _.each और _.invoke का उपयोग करूंगा?

कृपया कुछ उदाहरणों के साथ अंतर साझा करें।

उत्तर

9

नहीं, वे अलग-अलग चीजें करते हैं। उनके कोड पर एक नज़र डालें!

  • each एक दिया वस्तु के प्रत्येक तत्व के साथ किसी दिए गए फ़ंक्शन को कॉल। आप इसे एक संदर्भ भी पारित कर सकते हैं जिस पर फ़ंक्शंस लागू होते हैं। यह सरणी पर मूल forEach की तरह कार्य करता है।

    iterator.call(context, obj[i], i, obj) 
    

    यह वापस अपरिभाषित है।

  • invoke आम तौर पर एक स्ट्रिंग के रूप में एक विधि नाम हो जाता है, और दिए गए सेट के प्रत्येक तत्व के लिए गतिशील रूप से विधि की खोज करता है। फिर यह उस तत्व पर विधि लागू होता है; और आप इसके अतिरिक्त कुछ तर्क पारित कर सकते हैं।

    (_.isFunction(method) ? method : obj[i][method]).apply(obj[i], args); 
    

    यह आमंत्रण के परिणाम वापस करता है, यह मूल रूप से map करता है।

संबंधित मुद्दे