Các tính chất của Module Pattern
- Dựa trên Closure và HOF (Hight Order Function), IIFE (hàm được chạy ngay lập tức).
- Dùng để khởi tạo một Object giấu dữ liệu không thể truy xuất từ bên ngoài (private data).
- Có thể phát triển thành Revealing Module Pattern.
- Tính đóng gói dữ liệu (Encapsulation).
https://viblo.asia/p/closures-iifes-module-pattern-trong-javascript-4P856jYG5Y3
Ví dụ về Module Pattern
IIFE (Immediately Invoked Function Expression)
Câu lệnh trên được gọi là IIFE (Immediately Invoked Function Expression) sẽ được khởi tạo và thực thi ngay lập tức, nó không giống như một function bình thường ở ví dụ bên dưới khi chúng ta gọi nó mới được thực thi cùng xem ví dụ về một function không phải là một IIFE.
Tóm lại:
- Function đầu tiên được khởi tạo và thực thi ngay lập tức.
- Function thứ 2 nếu ta không gọi helloFunction(‘viblo’) thì nó sẽ không được thực thi mà chỉ được khởi tạo.
Ví dụ chi tiết về Module Pattern
Tham khảo:
- Closures, IIFEs, module pattern trong Javascript
- Module Pattern trong Javascript
- What is AMD, CommonJS, and UMD?
- What are CJS, AMD, UMD, and ESM in Javascript?
- The Evolution of JavaScript Module Patterns
- ES6 - Từ cơ bản tới nâng cao (Phần 3)
- Cách mà Google & Amazon quét sạch hàng ngàn JS developers xấu số chỉ bởi 1 câu interview đơn giản!
- Cách viết JavaScript hiện đại: Phần 2: CommonJS module
- JavaScript modules
- Sử dụng RequireJS và AMD để module hóa code JavaScript
- Sử dụng RequireJS và AMD để module hóa code JavaScript
- Tìm hiểu về module system, CommonJS và require