JavaScript classes ที่นำมารวมใน ES6 เป็น syntactical sugar over JavaScript prototype-based inheritance Classes จริงๆ แล้วคือ "special functions" สามารถกำหนด classes ด้วย class keyword ได้
class Person { // Constructor for this class constructor(name) { this.name = name; } // an instance method on this class displayName() { console.log(this.name) } }เทียบเท่ากับ declaration นี้
let Person = function(name) { this.name = name; } Person.prototype.displayName = function() { console.log(this.name) }Class นี้ยังเขียนเป็น class expressions ได้ รูปแบบข้างบนคือ class declaration รูปแบบต่อไปคือ class expression
// Unnamed expression let Person = class { // Constructor for this class constructor(name) { this.name = name; } // an instance method on this class displayName() { console.log(this.name) } }ไม่ว่าจะกำหนด classes แบบไหน สร้าง objects ได้ด้วย
ตัวอย่าง
let John = new Person("John"); John.displayName();ผลลัพธ์
John
อ่านเพิ่มเติมเกี่ยวกับ JS classes และ class keyword ได้ที่ Tutorialspoint ES6 Classes