🙀JavaScript no tiene clases
La sintaxis de clase que es 🔷 Syntactic Sugar
Empezemos con un ejemplo :
class Rectangle {
constructor(width, height) {
this.width = width;
this.height = height;
}
isSquare() {
return this.width === this.height;
}
}
Si le preguntas a JavaScript sobre el tipo de Rectangle:
typeof(Rectangle); //"function"
Antes de que la palabra clave class
se añadiera al lenguaje en 2015, así es como solíamos escribir "clases":
// Este es el constructor
function Rectangle(width, height) {
this.width = width;
this.height = height;
}
// este es un método de instancia (que puedes llamar en nuevas instancias de Rectangle)
// Nota: esto tiene que ser una función (no una función de flecha), se explicará más adelante en el alcance léxico
Rectangle.prototype.isSquare = function() {
return this.width === this.height;
}
Al asignar una nueva función a Rectangle.prototype
estás agregando un nuevo método de instancia a las instancias de Rectangle
.
Eso significa que, cada vez que creas un nuevo Rectangle
, esa instancia tendrá un método de instancia llamado isSquare
que puede acceder a las propiedades de instancia a través de this
. (por ejemplo, this.width
y this.height
).
Esta sintaxis no es fácil de entender para la mayoría de los desarrolladores, y está perfectamente bien que te sientas así. Lo importante es que seas capaz de reconocerlo.
Última actualización