Closures, IIFEs, module pattern trong Javascript

Module Pattern in Javascript

Posted by Box XV on October 1, 2021. 2 min read.

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)

(function helloModulePattern(name) {
    console.log(`module pattern chào ${name}`) // print console: module pattern chào viblo
})('viblo')

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.

function helloFunction(name) {
    console.log(`function chào ${name}`) // print console: function chào viblo
}
helloFunction('viblo')

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: