Com o ES6 o javascript implementou uma forma mais amigável de construir objetos que é semelhante ao que outras linguagens orientadas a objetos possuíam, as classes:
Obs.: Ao bloco que define a forma de construir os objetos damos o nome de Classe, ao objeto criado pela classe damos o nome de Instância
class Book {
// Configuraremos as instâncias aqui dentro
}
const eragon = new Book()
console.log(eragon)
Para que uma classe tenha atributos nós utilizamos um método construtor:
class Book {
constructor (title) {
this.title = title
}
}
const eragon = new Book("Eragon")
const eldest = new Book("Eldest")
console.log(eragon, eldest)
Para que uma classe tenha métodos nós os declaramos da seguinte forma:
class Book {
constructor (title) {
this.title = title
this.published = false
}
publish() {
this.published = true
}
}
const eragon = new Book("Eragon")
const eldest = new Book("Eldest")
eragon.publish()
console.log(eragon)
console.log(eldest)
console.log(eragon instanceof Book)