Mis apuntes de desarrollo web </>

Programación orientada a objetos

Es un paradigma de la programación que actualiza la forma de programar anterior (programación estructurada). Algunos de sus conceptos fundamentales son:

Clases:

Son plantillas/modelos sobre las cuales se pueden crear objetos nuevos. Estas inician con mayúsculas y deben tener una función constructor, la cual contiene los parámetros mínimos que necesita un objeto para existir y asi poder dar un estado inicial a los objetos creados a partir de la clase.

Propiedades:

Son los atributos o características de los objetos. Estas se definen tanto en los parámetros del constructor como dentro de la misma función para así inicializar los objetos. Tambien se pueden añadir propiedades que no esten en los parámetros pero siempre utilizando this para referenciar al objeto.

Ejemplo clase

Métodos:

Se denomina métodos a las funciones asociadas a los comportamientos o acciones que realizan los objetos.

Ejemplo clase con método

Objetos:

Son estructuras de datos que representan instancias de clases. Todos los objetos tienen propiedades o atributos y comportamientos y acciones representados por pares de clave: valor.

Para acceder a las propiedades y acciones del objeto se utiliza la nomeclatura del punto.

Crear objetos:

Hay varias maneras de crear objetos:

  • Crear un objeto único declarandolo como una variable o constante.
  • Creando un tipo de dato Object usando new. Se crea un objeto vacio y sus propiedades se van definiendo dinámicamente.
  • Mediante clases usando new.
ejemplo objetos 1 ejemplo objetos 2 ejemplo objetos 3

Agregar y eliminar propiedades en objetos:

  • Para agregar una nueva propiedad solo se debe definirla mediante la nomeclatura del punto.
  • Para eliminar una propiedad de un objeto se utiliza la palabra delete.
agregar y eliminar propiedades en objetos

Funciones o métodos:

Son fragmentos de código reutilizable que se escriben para ejecutar una tarea y no volver a escribir el mismo código más de una vez.

  • Primero se deben declarar y definir.
  • Para utilizarlas se deben invocar.
  • Deben realizar solo una tarea.
  • Se pueden invocar todas las veces que se necesiten.
  • Ayudan a modularizar el código.
  • Pueden recibir parámetros (información de entrada).
  • Pueden devolver valores (return).
  • En JavaScript se pueden invocar funciones ya sea antes o después de que se declaren (hoisting).

Sintaxis:

Para declarar funciones hay varias sintaxis:

Palabra reservada function:
Se utiliza la palabra function, posteriormente el nombre de la función, luego paréntesis () los cuales pueden contener parámetros opcionales, y por último, el cuerpo de la función el cual es contenido con llaves {}.
Funciones de tipo expresión o anónimas:
Se declara una variable y se define igual a la palabra function, luego paréntesis () para los parámetros y luego el cuerpo de la función. La variable es el nombre de la función.
Funciones de tipo Self Invoking:
Este tipo de funciones no tienen nombre, no se declaran con ninguna variable y solo se invocan una sola vez dentro de si mismas. Se abren paréntesis dentro de los cuales se define de forma similar a las funciones anónimas, luego despues de dichos paréntesis se abren otros paréntesis para los argumentos de la función.
Funciones flecha:
Se define una constante igual a paréntesis para los parámetros, luego se agregan los simbolos => y posteriormente se define el cuerpo de la función.
Sintaxis funciones

Ejemplos de funciones:

ejemplos funciones

Herencia:

  • La herencia es una de las características más importantes de la Programación orientada a objetos.
  • Es un mecanismo que permite derivar una clase a otra clase, permitiendo que se puedan definir nuevas clases basadas de unas ya existentes a fin de reutilizar código, generando así una jerarquía de clases dentro de una aplicación.
  • Si una clase deriva de otra, esta hereda sus atributos y métodos y puede añadir nuevos atributos, métodos o redefinir los heredados.
  • Para crear una clase hija, se utiliza la palabra clave extends para decirle a JavaScript la clase padre de la cual se quiere heredar para la clase hija.
  • En el constructor de la clase hija deben estar las mismas propiedades definidas en la clase padre, en el mismo orden, despues se pueden añadir las nuevas propiedades.
  • Para poder llamar al constructor de la clase padre y poder heredar sus propiedades se utiliza el método super() dentro del constructor de la clase hija.
  • Para sobreescribir métodos tambien se debe utilizar super. Se define el método con el mismo nombre que en la clase padre y se puede reescribir por completo O utilizando super. y el nombre del método original, asi se puede heredar el retorno de este y añadirle algo nuevo.
ejemplo herencia en JS