Một module là một hàm (function) hay đối tượng (object) thể hiện như một giao diện (interface) cho phép truy cập đến các chức năng cơ bản và ẩn giấu những thông tin quan trọng, phức tạp hay riêng tư (như thuộc tính hay phương thức).

Khái niệm module gắn liền với khái niệm đóng gói (encapsulation).

Thiết kế hàm kiểu module nhằm tận dụng các ưu điểm của phạm vi (scope) hàm và closure.

Xét ví dụ tạo một module tên module_func chứa một biến riêng tư (secret_num) không thể được truy cập một cách trực tiếp, chỉ có thể truy cập nó một cách gián tiếp thông qua các phương thức (set_numget_num):


var module_func = function ()

{

var secret_num = 0;

return {

set_num: function (num) {

secret_num = num;

},

get_num: function () {

return secret_num;

}

};

};

var mynum = module_func ();

mynum.set_num (3);

alert(mynum.get_num());// kết quả là 3

Thực thi đoạn mã trên.

< Hàm (functions)