2010-11-12 15 views
5

मैं googleing कोशिश की, लेकिन गूगल कोष्ठकों के बारे में देखभाल करने के लिए ...जब कोई फ़ंक्शन समाप्त होता है तो इसका क्या अर्थ होता है}) (jQuery) ;?

+4

http://stackoverflow.com/questions/3458283/in-javascript-what-does-this-syntax-mean और http://stackoverflow.com/questions/2309614/what-does- यह- जावास्क्रिप्ट- jquery -सिंटाक्स-मतलब एसओ की अपनी खोज है। मुझे आपके प्रश्न के शीर्षक का उपयोग करके ये जवाब मिला। – user113716

+0

अच्छा आपने इस सवाल से पूछा, हम सभी इसका उपयोग करते हैं और यह नहीं जानते कि यह क्या करता है। मुझे अब यह स्पष्ट किया गया है। – kobe

+1

@gov - यह सवाल हर समय पूछा जाता है। यहां एक और है: http://stackoverflow.com/questions/2937227/jquery-what-does-function-jquery-mean और अन्य: http://stackoverflow.com/questions/2976089/can-someone-explain-what-the -सिंटाक्स-मतलब-कब-परिभाषित-ए-jquery-plugin और अन्य: http://stackoverflow.com/questions/2464635/what-does-function-jquery-do-mean – user113716

उत्तर

3

आप यह देखते हैं:

  1. एक गुमनाम समारोह jQuery के लिए अपने संदर्भ के रूप में $ का उपयोग करता है निर्धारित करना:

    (function($) { 
        // ...code using $... 
    })(jQuery); 
    

    यह दो बातें कर रहा है।

  2. इसे कॉल करना, jQuery में गुज़रना।

आप इस तरह यह कर सकता है:

function foo($) { 
    // ...code using $... 
} 
foo(jQuery); 

... लेकिन यह है कि एक अनावश्यक प्रतीक बनाता है।

यह सब है, क्योंकि jQuery प्रतीक jQuery और प्रतीक $ है, लेकिन यह असामान्य लोगों jQuery.noConflict() का उपयोग करने के लिए jQuery बताने के लिए $ जो भी हो गया था जब jQuery लोड करने के लिए वापस लौटने के लिए नहीं है, क्योंकि अन्य लोकप्रिय पुस्तकालयों की एक जोड़ी (प्रोटोटाइप और म्यूटूल, दो नाम देने के लिए) $ का उपयोग करें और इससे किसी को उन पुस्तकालयों का उपयोग करने की सुविधा मिलती है और jQuery एक साथ। लेकिन आप अभी भी अपने फ़ंक्शन के भीतर $ का उपयोग कर सकते हैं, क्योंकि तर्क उस कार्य के बाहर जो भी प्रतीक है उसका छायांकन करता है।

+0

अज्ञात फ़ंक्शन का उपयोग क्यों करें? अगर यह अज्ञात है और पुन: प्रयोज्य नहीं है, तो इसे क्यों कार्य करें? अभिव्यक्ति का उपयोग क्यों नहीं करते? – polyhedron

+1

@ पोलीहेड्रॉन - यह फ़ंक्शन केवल एक बार चलाने के लिए है, इसलिए किसी नाम की आवश्यकता नहीं है। बिंदु टीजेयह बना रहा है कि '$ 'फ़ंक्शन के अंदर एक स्थानीय चर बन जाता है, जहां यह वैश्विक' jQuery' चर का संदर्भ देता है। यदि आपके पास वैश्विक चर के रूप में '$' है, तो एक और लाइब्रेरी एक ही वैश्विक चर नाम का उपयोग कर एक संघर्ष होगा। इस तरह यह निजी है, और इसलिए संरक्षित है। – user113716

+1

@ पोलीहेड्रॉन: जावास्क्रिप्ट में, * केवल * फ़ंक्शंस नए स्कोप बना सकते हैं, इसलिए यदि आप एक निजी चर बनाना चाहते हैं तो आपको फ़ंक्शन का उपयोग करना होगा। –

1

यह मूल रूप से स्वचालित रूप से गुमनाम/लैम्ब्डा समारोह परिभाषित invokes और इसे करने के लिए jQuery संदर्भ की आपूर्ति नहीं लगता है।

बहुत कुछ functionCall(jQuery) जैसा ही आप इसे परिभाषित करते हैं और इसे उसी पंक्ति/अभिव्यक्ति में आमंत्रित करते हैं।

1

आम तौर पर इन के रूप में हैं ...

(function($) { 
    // do something with $ 
})(jQuery); 

जिसका मतलब है कि समारोह वास्तव में साथ कुछ कर रहा है jQuery (यह function(a) {...} को परिभाषित करता है और उसके बाद a के रूप में jQuery गुजरता है), लेकिन यह सक्षम होना चाहता है फ़ंक्शन के अंदर jQuery के बजाय $ का उपयोग करने के लिए।

यह $(this) और इतने पर कोई संघर्ष मोड में भले ही jQuery शुरू हो जाती है जैसी चीजों (और इस प्रकार $ सामान्य रूप से jQuery का उल्लेख नहीं होता) की अनुमति देता है।

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

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