2010-06-08 17 views
5

jQuery में, क्या jQuery.each निम्न दो निर्माण के बीच का अंतर है:

// Given 
var arr = [1,2,3,4], 
    results = [], 
    foo = function (index, element) { 
     /* something done to/with each element */ 
     results.push(element * element); // arbitrary thing. 
    } 

// construction #1 
$.each(arr, foo); // results = [1,4,9,16] 

// construction #2 
$(arr).each(foo); // results = [1,4,9,16] 

वहाँ कोई अंतर है, या है यह पूरी तरह से वाक्यविन्यास है?

उत्तर

8

$().each(), you can see this in the core code सिर्फ $.each() के लिए एक आवरण है:

each: function(callback, args) { 
    return jQuery.each(this, callback, args); 
} 

हालांकि, $(something).each() तत्वों के लिए लक्षित है मैं एक सादे सरणी बाद में तोड़ने नहीं होगा के साथ इसे का उपयोग आप वादा नहीं कर सकता (यह संभावना नहीं है यह तोड़ देगा, क्योंकि jQuery ऑब्जेक्ट्स एरे लपेटे गए हैं)। इस मामले में इच्छित उपयोग सीधे $.each() पर कॉल कर रहा है।

1

सरणी को संभालने के तरीके के साथ कोई अंतर नहीं है लेकिन पूरी तरह से वाक्यविन्यास है।

jQuery बहुत ढीली लाइब्रेरी है और आपको सूट के लिए अलग-अलग कार्यों का लाभ लेने की अनुमति देता है।

jQuery हैंडल इस तरह तो

function each(first,second) 
{ 
    array = (instanceOf this == Array) ? this : ((first instanceOf Array) ? first : second); 
    callback = (instanceOf second == Function) ? second : first; 
    //As you can see its testing what types are being sent to the fintion 
} 

अगर first तर्क एक समारोह है तो this सरणी आईई $([1,2,3,4]).each(callback) अन्यथा इसकी उम्मीद है कि first सरणी है और second कॉलबैक आईई `$ .प्रत्येक है होना चाहिए (सरणी, कॉलबैक);

लेकिन किसी भी तरह से प्रक्रिया काफी समान है, तो तर्क प्रकार की जांच सही ढंग से स्थिति को संभालने के तरीके के बारे में खोने में मदद करती है।

यहां तक ​​कि इस यद्यपि जिस तरह से प्रत्येक वास्तव में कुछ कार्यों कि इस तकनीक का प्रयोग ढील

+0

बनाने के लिए इन 2 विभिन्न कार्यों, jQuery ही है, एक एक विधि jQuery वस्तुओं पर उपलब्ध पर एक हैं नियंत्रित किया जाता है नहीं है .. यह '.fadeIn (कॉलबैक)' और '.fadeIn (' धीमी ', कॉलबैक) की तरह नहीं है, यह एक अलग अधिभार अवधारणा है जिसे आप वर्णन कर रहे हैं, यह वैकल्पिक पैरामीटर के बारे में है। –

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