Seperti yang ditunjukkan Triptych, Anda dapat memanggil fungsi cakupan global apa pun dengan menemukannya di konten objek host.
Metode yang lebih bersih, yang mencemari namespace global jauh lebih sedikit, adalah dengan secara eksplisit meletakkan fungsi ke dalam array secara langsung seperti:
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);
Array ini juga bisa menjadi properti dari beberapa objek selain objek host global yang juga berarti Anda dapat secara efektif membuat namespace Anda sendiri seperti yang dilakukan oleh banyak library JS seperti jQuery. Ini berguna untuk mengurangi konflik jika / saat Anda menyertakan beberapa pustaka utilitas terpisah di halaman yang sama, dan (bagian lain dari desain Anda mengizinkan) dapat mempermudah penggunaan kembali kode di halaman lain.
Anda juga bisa menggunakan objek seperti itu, yang mungkin Anda temukan lebih bersih:
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);
Perhatikan bahwa dengan array atau objek, Anda dapat menggunakan salah satu metode pengaturan atau mengakses fungsi, dan tentu saja dapat menyimpan objek lain di sana juga. Anda selanjutnya dapat mengurangi sintaks dari salah satu metode untuk konten yang tidak terlalu dinamis dengan menggunakan notasi literal JS seperti ini:
var dyn_functions = {
populate_Colours:function (arg1, arg2) {
// function body
};
, populate_Shapes:function (arg1, arg2) {
// function body
};
};
Sunting: tentu saja untuk blok fungsionalitas yang lebih besar Anda dapat memperluas di atas ke "pola modul" yang sangat umum yang merupakan cara populer untuk merangkum fitur kode secara terorganisir.