Cơ BảnJavaScript iconJavaScript

Class trong ES6 là gì? Có điểm gì khác với function constructor?

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.

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript