Antes de empezar.
Terminología
Clase: define las características de un objetoObjeto: es una instancia de una clase
Propiedad: es una característica de un objeto, por ejemplo una característica de las personas seria su color de ojos)
Método: es una capacidad del objeto, por ejemplo caminar seria un método de las personas
Constructor: es un método llamado al momento de instanciar un objeto (de crearlo)
Herencia: una clase puede heredar (tomar) características de otra clase
Encapsulamiento: una clase sólo define las características del objeto, un método sólo define cómo se ejecuta el método.
Abstracción: La conjunción de herencia, métodos, propiedades de un objeto debe ser capaz de simular un modelo de la realidad.
La motivación
JavaScript utiliza funciones como clases. Definir una clase es tan fácil como definir una función.Lo que quizás no sabes
JavaScript en su núcleo tiene objetos, por ejemplo las clases Math, String, Array... por lo tanto si ya usaste algo como Math.random() , ya has trabajado con un poco de la programación orientada a objetos propia del núcleo de JavaScriptJavaScript..JavaScript
Como verán en Javascript no usamos la palabra class (clase) como en C++, Java, otros.. en los cuales se utiliza mucho la palabra class, public, private.. como Javascript esta basado en prototipos (lo vemos mas adelante) no vamos a ver ninguna de las tres palabras tan utilizadas... A mi sinceramente me gusta mucho, pero va en el gusto cada uno. Puede ser que primero te parezca confuso pero te vas a acostumbrar, te lo juro!eso ha sido todo, les dejo un gran abrazo!