Class là cú pháp OOP rõ ràng hơn để tạo objects.
javascript
class Animal {
#name; // private field
constructor(name) {
this.#name = name;
}
speak() {
return this.#name + ' speaks';
}
static create(name) {
return new Animal(name);
}
}
const a = Animal.create('Cat');
a.speak(); // 'Cat speaks'Khác function constructor: class không thể gọi không có new (throw TypeError), methods không enumerable (không xuất hiện trong for...in), và phải khai báo trước khi dùng (không hoisted).
Bên dưới vẫn dùng prototype chain — class chỉ là syntactic sugar.