jQuery में बहुत साफ extend
विधि है, जो 2 ऑब्जेक्ट्स को एक में विलीन करती है।jQuery की विस्तार विधि पर खाली वस्तु क्यों पास करें?
इस प्रकार jQuery Plugins authoring page पर वे एक उदाहरण दिखाने:
var settings = $.extend({
'location' : 'top',
'background-color' : 'blue'
}, options);
हालांकि, मैंने देखा है कई प्लग, तो जैसे पहले पैरामीटर के रूप में एक खाली वस्तु पारित:
var settings = $.extend({}, {
'location' : 'top',
'background-color' : 'blue'
}, options);
जहां तक जैसा कि मैं बता सकता हूं, ये दोनों एक ही चीज करते हैं। फर्क सिर्फ इतना है हो सकता है अगर defaults
हैं अपनी ही चर में संग्रहीत किया गया है:
var defaults = {
'location' : 'top',
'background-color' : 'blue'
},
settings = $.extend({}, defaults, options);
इस तरह, आप हमेशा उन्हें बिना अपने चूक का उपयोग कर सकते options
द्वारा ओवरराइड जा रहा है। तब भी जब वे एक चर में चूक की दुकान नहीं है क्यों इतने सारे प्लगइन लेखकों extend
को एक खाली वस्तु पारित करने के लिए चुनते हैं,:
यहाँ सवाल है?
क्या मुझे कुछ याद आ रही है?
मेरे लिए व्यर्थ लगता है। यह एक आबादी वाला बना रहा है, इसे एक खाली में कॉपी कर रहा है, और इसे छोड़ रहा है। आपका तीसरा उदाहरण वैध कारण दिखाता है। मुझे लगता है कि लोग ऐसा करते हैं क्योंकि वे इस बारे में नहीं सोचते कि वे क्या कर रहे हैं। –
@amnotiam यह वही है जो मैं सोच रहा हूं, लेकिन मैंने देखा है * इतने सारे * प्लगइन्स ऐसा करते हैं। स्पष्ट रूप से मुझे कुछ याद आ रही है ... –
नहीं, मुझे लगता है कि परेशानी यह है कि आप * कुछ * प्राप्त कर रहे हैं। –