मैं एक Windows Explorer शैली ब्राउज़र में कुछ नेस्टेड <ul>
ब्लॉक चालू करने के लिए एक छोटे से Javscript विजेट का विकास किया है के साथ शाब्दिक पैटर्न आपत्ति है। मैं हाल ही में वस्तु शाब्दिक पैटर्न के बारे में सीखा है और इसे जाने देने का फैसला किया, तो मेरे कोड के संगठन कुछ इस तरह है:जावास्क्रिप्ट कई उदाहरण
$j(function() {
myExplorer.init();
}
:
var myExplorer = {
init : function(settings) {
myExplorer.config = {
$wrapper : $('#explorerCategories'),
$contentHolder : $j('#categoryContent'),
loadingImg : '<img src="../images/standard/misc/ajax_loader.gif" alt="loading" class="loading" />'
}
// provide for custom configuration via init()
if (settings && typeof(settings) == 'object') {
$.extend(myExplorer.config, settings);
}
// some more code...
},
createExpanderLink : function() {
// more code
},
anotherMethod : function() {
// etc
}
}
तब मेरे पेज में मैं मेरे एक्सप्लोरर के साथ सेट
यह सभी तरह से ठीक काम करता है। समस्या तब होती है जब मैं एक ही पृष्ठ पर इन एक्सप्लोरर शैली विजेटों में से एक को और अधिक रखना चाहता हूं। मैं अलग सेटिंग्स में गुजर की कोशिश की:
$j(function() {
// first instance
myExplorer.init();
//second instance
var settings = {
$wrapper : $('#explorerCategories2'),
$contentHolder : $j('#categoryContent2')
}
myExplorer.init(settings);
}
लेकिन इस बस पहले उदाहरण जो प्रभावी रूप से यह टूट जाता है के लिए config vales अधिलेखित कर देता है। मुझे एहसास हो रहा है कि ऑब्जेक्ट शाब्दिक पैटर्न यहां जाने का तरीका नहीं है लेकिन मुझे यकीन नहीं है कि क्या है। क्या कोई भी पॉइंटर्स पेश कर सकता है?
मेरी अज्ञानता को क्षमा करें, लेकिन क्या यह सही है कि इस पैटर्न का उपयोग करते समय मुझे आसपास के myExplorer फ़ंक्शन के भीतर उपयोग करने से पहले सभी आंतरिक कार्यों को घोषित करना होगा। मैं यहाँ आपके // init कोड द्वारा टिप्पणी थोड़ा उलझन में मिला है। – benb