Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cú pháp định nghĩa Enum trong JavaScript

JavaScript **không hỗ trợ enum native**. Workaround: dùng Object.freeze() trên object chứa các hằng số.

Ví dụ

const Color = {
  RED: 1,
  BLUE: 2,
  GREEN: 3,
  YELLOW: 4
};
Object.freeze(Color); // ngăn thêm/sửa/xóa property

// Usage
let carColor = Color.BLUE;

// Thử thêm mới → fail silently (strict mode: TypeError)
Color.WHITE = 5;
console.log(Color); // { RED: 1, BLUE: 2, GREEN: 3, YELLOW: 4 }

Lưu ý

  • Object.freeze chỉ **shallow freeze** — object lồng nhau vẫn mutable.
  • Cần deep freeze? Viết helper đệ quy freeze.
  • TypeScript có enum native compile-time.