Như Triptych đã chỉ ra, bạn có thể gọi bất kỳ hàm phạm vi toàn cầu nào bằng cách tìm hàm đó trong nội dung của đối tượng máy chủ.
Một phương pháp sạch hơn, ít gây ô nhiễm không gian tên chung hơn nhiều, là đặt các hàm vào một mảng một cách rõ ràng trực tiếp như sau:
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);
Mảng này cũng có thể là một thuộc tính của một số đối tượng khác với đối tượng máy chủ lưu trữ toàn cầu, nghĩa là bạn có thể tạo không gian tên của riêng mình một cách hiệu quả như nhiều thư viện JS chẳng hạn như jQuery. Điều này hữu ích để giảm xung đột nếu / khi bạn bao gồm nhiều thư viện tiện ích riêng biệt trong cùng một trang và (các phần khác của thiết kế của bạn cho phép) có thể giúp sử dụng lại mã trong các trang khác dễ dàng hơn.
Bạn cũng có thể sử dụng một đối tượng như vậy, mà bạn có thể thấy rõ ràng hơn:
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);
Lưu ý rằng với một mảng hoặc một đối tượng, bạn có thể sử dụng một trong hai phương pháp thiết lập hoặc truy cập các hàm và tất nhiên có thể lưu trữ các đối tượng khác trong đó. Bạn có thể giảm thêm cú pháp của một trong hai phương thức cho nội dung không động bằng cách sử dụng ký hiệu chữ JS như sau:
var dyn_functions = {
populate_Colours:function (arg1, arg2) {
// function body
};
, populate_Shapes:function (arg1, arg2) {
// function body
};
};
Chỉnh sửa: tất nhiên đối với các khối chức năng lớn hơn, bạn có thể mở rộng ở trên thành "mẫu mô-đun" rất phổ biến, đây là một cách phổ biến để đóng gói các tính năng mã một cách có tổ chức.