2009-12-16 9 views
76

मैं अन्य लोगों के कोड को समझने की कोशिश करके jQuery सीख रहा हूं। मैं इस में भाग:jquery परिवर्तनीय वाक्यविन्यास

jQuery.fn.myFunc = function(options, callback) { 

//stuff 

    jQuery(this)[settings.event](function(e) { 
    var self = this, 
    $self = jQuery(this), 
    $body = jQuery("body"); 
    //etc. 
    } 

//more stuff 

} 

मेरे समझ के साथ कि $ jQuery वस्तु को संदर्भित करता है। तो $$self और $body के साथ क्यों डालें? और self$self जैसा ही है?

उत्तर

195

$ स्वयं थोड़ा $, जो इस मामले में jQuery के लिए एक उपनाम है के साथ क्या करना है। कुछ लोग नियमित वर्र्स और jQuery ऑब्जेक्ट्स के बीच भेद बनाने के लिए चर के साथ एक डॉलर के चिह्न को एक साथ रखना पसंद करते हैं।

उदाहरण:

var self = 'some string'; 
var $self = 'another string'; 

ये दो अलग चर के रूप में घोषित किया गया है। यह निजी चर से पहले अंडरस्कोर डालने जैसा है।

एक कुछ हद तक लोकप्रिय पैटर्न है:

var foo = 'some string'; 
var $foo = $('.foo'); 

इस तरह, आप जानते हैं $ foo एक कैश्ड jQuery वस्तु पर बाद में कोड में है।

+8

बहुत स्पष्ट। मैं आपको समझाता हूं कि कोई व्यक्ति $ var सम्मेलन का उपयोग क्यों कर सकता है। – dnagirl

+0

आप jquery चर और jslint के लिए एक $ के साथ परिवर्तनीय शुरुआत से कैसे निपटते हैं? –

9

नहीं, यह निश्चित रूप से नहीं है। यह सिर्फ एक और चर नाम है। $() आप वास्तव में jQuery core function के बारे में बात कर रहे हैं। $self सिर्फ एक चर है। यदि आप चाहें तो आप इसे foo पर भी नाम दे सकते हैं, यह चीजों को नहीं बदलेगा। $ (और _) जावास्क्रिप्ट पहचानकर्ता में कानूनी वर्ण हैं।

ऐसा क्यों किया जाता है, इसलिए अक्सर कुछ कोड सम्मेलन या उल्टा कीवर्ड वाले संघर्ष से बचने के लिए होता है। मैं अक्सर $this के लिए इसका इस्तेमाल करते हैं इस प्रकार है:

var $this = $(this); 
7

स्वयं और $ स्वयं ही नहीं हैं। पूर्व "ऑब्जेक्ट" और बाद वाला एक jQuery ऑब्जेक्ट द्वारा इंगित ऑब्जेक्ट है जिसका "स्कोप" ऑब्जेक्ट "इस" द्वारा इंगित किया गया है। इसी तरह, $ शरीर शरीर डीओएम तत्व नहीं है लेकिन jQuery ऑब्जेक्ट जिसका दायरा शरीर तत्व है।

26

यह शुद्ध जावास्क्रिप्ट है।

$ के बारे में कुछ खास नहीं है। यह सिर्फ एक चरित्र है जिसे परिवर्तनीय नामों में उपयोग किया जा सकता है।

var $ = 1; 
var $$ = 2; 
alert($ + $$); 

jQuery बस इसे एक चर $ कहा जाता है के लिए मुख्य कार्य है प्रदान करती है। आपके द्वारा this को स्थानीय चर के लिए self नामक कोड और this के साथ jQuery को कॉल करने के परिणाम $self नामक वैश्विक चर के लिए तर्क के रूप में निर्दिष्ट करते हैं।

यह बदसूरत, गंदे, भ्रमित है, लेकिन $, self और $self समान नाम होने वाले सभी अलग-अलग चर हैं।

+0

स्वाद अलग-अलग होते हैं, लेकिन मुझे यह बिल्कुल बदसूरत नहीं लगता है। डॉलर के हस्ताक्षर का उपयोग लंबे समय तक $ STRINGS और अन्य विशेष चर को दर्शाने के लिए किया गया है। निश्चित रूप से इस सम्मेलन को अपनाने जा रहा है। –

2

var नाम में उपसर्ग के रूप में डॉलर का नाम hungarian notation की अवधारणा से उपयोग है।

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