जैसा कि Triptych बताता है, आप किसी भी वैश्विक स्कोप फ़ंक्शन को होस्ट ऑब्जेक्ट की सामग्री में खोजकर कॉल कर सकते हैं।
एक क्लीनर विधि, जो वैश्विक नाम स्थान को बहुत कम प्रदूषित करती है, स्पष्ट रूप से कार्यों को सीधे एक सरणी में डालती है:
var dyn_functions = [];
dyn_functions['populate_Colours'] = function (arg1, arg2) {
// function body
};
dyn_functions['populate_Shapes'] = function (arg1, arg2) {
// function body
};
// calling one of the functions
var result = dyn_functions['populate_Shapes'](1, 2);
// this works as well due to the similarity between arrays and objects
var result2 = dyn_functions.populate_Shapes(1, 2);
यह सरणी वैश्विक होस्ट ऑब्जेक्ट के अलावा कुछ ऑब्जेक्ट की संपत्ति भी हो सकती है, जिसका अर्थ है कि आप प्रभावी रूप से कई JS लाइब्रेरी जैसे jQuery do के रूप में अपना स्वयं का नाम स्थान बना सकते हैं। यह संघर्ष को कम करने के लिए उपयोगी है यदि / जब आप एक ही पृष्ठ में कई अलग-अलग उपयोगिता पुस्तकालय शामिल करते हैं, और (आपके डिज़ाइन के अन्य भाग) अन्य पृष्ठों में कोड का पुन: उपयोग करना आसान बना सकते हैं।
आप किसी वस्तु का उपयोग भी कर सकते हैं, जैसे कि आपको क्लीनर मिल सकता है:
var dyn_functions = {};
dyn_functions.populate_Colours = function (arg1, arg2) {
// function body
};
dyn_functions['populate_Shapes'] = function (arg1, arg2) {
// function body
};
// calling one of the functions
var result = dyn_functions.populate_Shapes(1, 2);
// this works as well due to the similarity between arrays and objects
var result2 = dyn_functions['populate_Shapes'](1, 2);
ध्यान दें कि किसी सरणी या ऑब्जेक्ट के साथ, आप फ़ंक्शंस को सेट या एक्सेस करने की किसी भी विधि का उपयोग कर सकते हैं, और निश्चित रूप से अन्य ऑब्जेक्ट्स को वहां भी स्टोर कर सकते हैं। आप जेएस शाब्दिक संकेतन का उपयोग करके सामग्री के लिए या तो उस पद्धति के वाक्यविन्यास को कम नहीं कर सकते हैं जो कि गतिशील नहीं है:
var dyn_functions = {
populate_Colours:function (arg1, arg2) {
// function body
};
, populate_Shapes:function (arg1, arg2) {
// function body
};
};
संपादित करें: निश्चित रूप से कार्यक्षमता के बड़े ब्लॉकों के लिए आप ऊपर बहुत सामान्य "मॉड्यूल पैटर्न" का विस्तार कर सकते हैं जो एक संगठित तरीके से कोड सुविधाओं को एन्कैप्सलेट करने का एक लोकप्रिय तरीका है।