2010-10-06 23 views
7

मेरा सवाल यह है कि मुझे $ .extend (...) का उपयोग कब करना चाहिए?
कई jQuery प्लगइन्स में मैं देखता हूँ कि jQuery-वस्तु ही नई (वैश्विक) कार्यों के साथ बढ़ाया है:

$.extend({ 
    doSth: function() { 
     alert('do sth here'); 
    } 
} 

jQuery-वस्तु का विस्तार करने के बजाय एक वैश्विक वस्तु समारोह युक्त बनाने के क्या लाभ हैं:

var myLib = { 
    doSth: function() { 
     alert('do sth here'); 
    } 
} 

वर्तमान में मैं एक छोटा सा जेएस-लिब विकसित कर रहा हूं। उस lib में $ .fn-object बढ़ाया गया है और मुझे कुछ वैश्विक कार्यों की आवश्यकता है।
लेकिन मुझे नहीं पता कि वैश्विक कार्यों को कहां रखा जाए: मेरे अपने lib-object में या jquery-object में?

शुभकामनाओं सहित,
Biggie

उत्तर

3

कुछ संदर्भ देने के लिए यह सवाल से पूरी तरह से स्पष्ट नहीं है के बाद से: एक ही पैरामीटर के साथ अनजान लोगों के लिए, $.extend()jQuery वस्तु फैली हुई है।


अक्सर कोई इस के लिए की जरूरत नहीं है, जब तक आप कुछ बहुत संबंधित पुस्तकालय, मैं अपने खुद के नाम स्थान में यह रखना चाहते हैं जोड़ रहे हैं। यह $ के तहत कोई उद्देश्य नहीं प्रदान करता है और एकमात्र संभावित चीज जो हो सकती है वह बाद में नए jQuery कोर अपडेट के साथ एक संभावित नामकरण संघर्ष है।

आप एक या दो स्थिर तरीकों कि एक प्लगइन है, जहां आप दोनों $.fnऔर$ का विस्तार कर रहे के साथ जाना है तो मैं स्वीकार्य के रूप में देखते हैं, लेकिन जो मामले की तरह लगता है आप कई तरीके है () $ पर उनके लिए कोई वास्तविक लाभ नहीं है।

ईमानदारी से कारण एक तर्क संस्करणों मौजूद है (या, और अधिक सही, पहली जगह में जोड़ा गया है), jQuery ही के लिए है आंतरिक उपयोग के लिए (काफी हर "खंड" इसे इस्तेमाल करता है, चेक करें here, here और here उदाहरण के रूप में), मुझे यकीन नहीं है कि बाह्य उपयोग इरादा था, उन्होंने इसके लिए इसे खुला/एक्स्टेंसिबल छोड़ दिया।

+0

"कारण एकल तर्क संस्करण मौजूद है jQuery के लिए ही है" - और प्लगइन के लिए भी। – lonesomeday

+0

@lonesomeday - वास्तव में, कारण यह नहीं था * जोड़ा गया * jQuery के लिए था, हालांकि प्लगइन्स * इसका उपयोग कर सकते हैं, अधिकांश प्लगइन्स 'jQuery.fn', * नहीं * jQuery का विस्तार करेंगे, प्लगइन्स * उनकी स्थिरता की आवश्यकता नहीं है jQuery ऑब्जेक्ट पर फ़ंक्शंस, हालांकि, वे चेन में उपयोग करने के लिए * $ .fn' पर होते हैं। –

+0

क्षमा करें, खुद से आगे बढ़ रहा था। – lonesomeday

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