La programación orientada a objetos es un paradigma de programación basado en la creación de objetos que pueden contener datos y funciones.
Se dice que la programación orientada a objetos busca que representemos nuestro código y algoritmos con objetos, como en la vida real.
Este paradigma está basado, principalmente en los principios de abstracción, encapsulación o encapsulamiento, herencia y polimorfismo
El propósito central de la programación orientada a objetos es que los objetos que definimos para nuestros algoritmos sean independientes, que no expongan sus detalles y que se puedan usar e integrar con otros objetos.
Un objeto es una combinación de propiedades o atributos que describen al objeto y una serie de métodos o acciones que puede ejecutar el objeto. Cada objeto en nuestro programa es capaz de almacenar información en sus propiedades y de modificarlas de manera independiente a otros objetos. Esto quiere decir que aunque tuviera dos objetos similares, digamos dos marcadores, cada uno puede modificar sus propiedades sin que estas modificaciones afecten al otro objeto, aún cuando ambos son del mismo tipo.
De este mismo objeto marcador, podemos decir que las propiedades que tiene son su color, su tamaño, la tinta disponible, el tipo de material del que están hecho, por mencionar algunos. Aunque tuviéramos dos tipos de marcadores, ambos podrían tener colores de tinta distintos, tinta disponible diferente, etc. Por eso en el paradigma cada objeto guarda un valor que le pertenece solo a él en sus propiedades.
Uno de los grandes poderes del paradigma es el de composición, objetos como el marcador que usamos de ejemplo, no son una unidad, son una composición de objetos más pequeños que tienen responsabilidades específicas y sencillas, la punta solo tiene que absorber tinta, el material que lo une solo tiene que sostenerlo todo, y así en lugar de pensar en el marcador como algo complejo con muchas funciones, pensamos en él como una composición de muchos objetos haciendo tareas sencillas.
De eso se trata separar nuestro código en objetos, de crear pequeños objetos, simples, con responsabilidades sencillas, que en conjunto, puedan solucionar problemas complejos, ayudándonos así a separar dicho problema en distintas responsabilidades.
Aunque en este bloque nos enfocaremos principalmente en el contexto y el valor de this, es importante comenzar hablando del tema de definición de objetos, que tiene mucho que ver con el del contexto, comencemos.
Continuemos.
-
Módulo 1 | 10 clases
Introducción
expand_more-
play_circle_outline
Clase 1
Presentación del curso de JavaScript
-
play_circle_outline
Clase 2
Acerca del lenguaje
-
play_circle_outline
Clase 3
Qué cubriremos en este curso
-
play_circle_outline
Clase 4
Qué hay de nuevo en esta actualización del curso
-
play_circle_outline
Clase 5
Cómo ejecutar código de JavaScript
-
play_circle_outline
Clase 6
Editor de texto y archivos de javaScript
-
play_circle_outline
Clase 7
Dónde puedo investigar más
-
play_circle_outline
Clase 8
Configurar el entorno de trabajo
-
play_circle_outline
Clase 9
Imprimir mensajes
-
play_circle_outline
Clase 10
Recibir datos
-
-
Módulo 2 | 13 clases
Conceptos básicos
expand_more-
play_circle_outline
Clase 1
Cómo es el lenguaje técnicamente
-
play_circle_outline
Clase 2
Qué son las variables y las constantes
-
play_circle_outline
Clase 3
Variables y constantes en javaScript
-
play_circle_outline
Clase 4
Números y operaciones aritméticas
-
play_circle_outline
Clase 5
Tipos de datos
-
play_circle_outline
Clase 6
Coerción de tipos
-
play_circle_outline
Clase 7
Booleanos
-
play_circle_outline
Clase 8
Truthy y Falsy
-
play_circle_outline
Clase 9
Operadores de comparación
-
play_circle_outline
Clase 10
Operadores lógicos
-
play_circle_outline
Clase 11
Condiciones
-
play_circle_outline
Clase 12
Ciclos
-
play_circle_outline
Clase 13
undefined, null y NaN
-
-
Módulo 3 | 8 clases
Fundamentos de funciones
expand_more-
play_circle_outline
Clase 1
Introducción a las funciones
-
play_circle_outline
Clase 2
El scope o alcance
-
play_circle_outline
Clase 3
Alcance de función y de bloque
-
play_circle_outline
Clase 4
Argumentos de funciones
-
play_circle_outline
Clase 5
Pase por valor y por referencia
-
play_circle_outline
Clase 6
Funciones puras
-
play_circle_outline
Clase 7
First class objects
-
play_circle_outline
Clase 8
Hoisting
-
-
Módulo 4 | 10 clases
Arreglos
expand_more-
play_circle_outline
Clase 1
Arreglos y sus usos
-
play_circle_outline
Clase 2
Conceptos básicos de los arreglos
-
play_circle_outline
Clase 3
Recorrer un arreglo
-
play_circle_outline
Clase 4
Operaciones funcionales con arreglos
-
play_circle_outline
Clase 5
Recorrer un arreglo con forEach
-
play_circle_outline
Clase 6
Modificar arreglos con map
-
play_circle_outline
Clase 7
Filtrar elementos con filter
-
play_circle_outline
Clase 8
Reducir un arreglo a un solo elemento con reduce
-
play_circle_outline
Clase 9
Buscar elementos con un arreglo
-
play_circle_outline
Clase 10
Spread y rest sintax
-
-
Módulo 5 | 6 clases
Objetos y JSON
expand_more-
play_arrow
Clase 1
Qué es la programación orientada a objetos
-
play_circle_outline
Clase 2
Declarar un objeto JSON
-
play_circle_outline
Clase 3
Shorthand syntax
-
play_circle_outline
Clase 4
Duplicar o combinar objetos
-
play_circle_outline
Clase 5
Destructuring assignment
-
play_circle_outline
Clase 6
Funciones constructoras
-
-
Módulo 6 | 4 clases
El contexto
expand_more -
Módulo 7 | 7 clases
Clases
expand_more-
play_circle_outline
Clase 1
Definir clases
-
play_circle_outline
Clase 2
Definir métodos y propiedades
-
play_circle_outline
Clase 3
Alcance de propiedades
-
play_circle_outline
Clase 4
Método constructor
-
play_circle_outline
Clase 5
Herencia de clases
-
play_circle_outline
Clase 6
Métodos accesores
-
play_circle_outline
Clase 7
Métodos y propiedades estáticas
-
-
Módulo 8 | 4 clases
Prototipos
expand_more -
Módulo 9 | 8 clases
Programación asíncrona
expand_more-
play_circle_outline
Clase 1
Qué es la programación asíncrona
-
play_circle_outline
Clase 2
Configuración de node.js
-
play_circle_outline
Clase 3
Callbacks
-
play_circle_outline
Clase 4
Promesas
-
play_circle_outline
Clase 5
Callbacks de las promesas
-
play_circle_outline
Clase 6
Crear promesas
-
play_circle_outline
Clase 7
Resolver múltiples promesas
-
play_circle_outline
Clase 8
Encadenar promesas
-
-
Módulo 10 | 4 clases
Funciones asíncronas (async | await)
expand_more -
Módulo 11 | 5 clases
Módulos
expand_more -
Módulo 12 | 10 clases
Generadores e iteradores
expand_more-
play_circle_outline
Clase 1
Generadores e Iteradores
-
play_circle_outline
Clase 2
Iteradores
-
play_circle_outline
Clase 3
Generadores
-
play_circle_outline
Clase 4
Return en funciones generadoras
-
play_circle_outline
Clase 5
Delegar generadores
-
play_circle_outline
Clase 6
Dónde se usan los generadores
-
play_circle_outline
Clase 7
Símbolos en JavaScript
-
play_circle_outline
Clase 8
Manejo de símbolos
-
play_circle_outline
Clase 9
Iterables con iteradores
-
play_circle_outline
Clase 10
Iterables y generadores
-
-
Módulo 13 | 11 clases
Cadenas a fondo
expand_more-
play_circle_outline
Clase 1
Strings o cadenas
-
play_circle_outline
Clase 2
Cómo definir una cadena
-
play_circle_outline
Clase 3
Caracteres especiales
-
play_circle_outline
Clase 4
Concatenación e interpolación
-
play_circle_outline
Clase 5
Comparación de cadenas
-
play_circle_outline
Clase 6
Subcadenas y caracteres
-
play_circle_outline
Clase 7
Búsqueda
-
play_circle_outline
Clase 8
Cadenas y arreglos
-
play_circle_outline
Clase 9
Otros métodos de las cadenas
-
play_circle_outline
Clase 10
Unicode
-
play_circle_outline
Clase 11
Planos unicode
-
-
Módulo 14 | 7 clases
Expresiones regulares
expand_more-
play_circle_outline
Clase 1
Expresiones regulares
-
play_circle_outline
Clase 2
Búsqueda con expresiones regulares
-
play_circle_outline
Clase 3
Reemplazando patrones
-
play_circle_outline
Clase 4
Rangos en regex
-
play_circle_outline
Clase 5
Agrupamiento
-
play_circle_outline
Clase 6
Cuantificadores
-
play_circle_outline
Clase 7
Ejercicio final regex
-