قبل از ES6 برای داشتن یک چیزی مثل کلاس که بشه شامل متد و پراپرتی باشه و بشه ازش نمونه ساخت از Constructor Functions مثل زیر استفاده می‌کردیم:

function Person(firstname, age) {
  this.firstName = firstname;
  this.age = age;
}

const jack = new Person("Jack", 35);
const mark = new Person("Mark", 45);

alert(jack.age); // 35
alert(mark.age); // 45

همونطور که می‌بینیم اینجا چیزی به اسم کلاس وجود نداره و یک تابع هست که توسط کلمه کلیدی new داره پیاده‌سازی میشه.

با معرفی شدن ES6 ساخت کلاس توی جاوا اسکریپت معنادار تر شد:

class Person {
  constructor(firstname, age) {
    this.firstName = firstname;
    this.age = age;
  }

  static self() {
    return this;
  }

  toString() {
    return "[object Person]";
  }

  getInfo() {
    return `${this.firstname} is ${this.age} years old`;
  }
}

 

منبع: