Contenido del curso
Primeros Pasos
- 5

¡Hola Mundo!
06:13 min - 6

Anatomía de una variable
09:23 min - 7

Tipos de datos: Mutabilidad e inmutabilidad
10:55 min - 8

Paso por valor
11:06 min - 9

Paso por referencia
07:00 min - 10

Creación de strings
11:33 min - 11

Concatenación de strings
08:31 min - 12

Manipulación de strings
12:13 min - 13

Tipo de dato primitivo: number
09:30 min - 14

Conversión a Booleanos
05:08 min - 15

Tipos de datos primitivos: null, undefined, symbol y bigint
07:28 min - 16

Conversión de tipos: Type Casting y Coercion
04:38 min - 17

Conversión de tipos explícita e implícita
12:20 min - 18

Proyecto: Crea un perfil para redes sociales con JavaScript
07:23 min
Funciones y This
- 19

Anatomía de una función
11:39 min - 20

Preguntas a Desarrolladores Senior: ¿Por qué aprender Desarrollo Web?
02:11 min - 21

Funciones vs Métodos
10:01 min - 22

Funciones puras e impuras
11:22 min - 23

Identificador this
Viendo ahora - 24

Métodos bind, call y apply
10:09 min - 25

Funciones flecha y enlace léxico
10:31 min - 26

Implicaciones de duplicar código
03:19 min - 27

Funciones constructoras
10:41 min - 28

10 Tipos de funciones
01:39 min - 29

Objeto window y modo estricto
07:37 min - 30

Tipos de binding
01:11 min - 31

Expresiones vs Sentencias
04:02 min - 32

Proyecto: Crea biografías de personajes con JavaScript
12:51 min
Lógica y ciclos
- 33

Operadores de comparación
06:12 min - 34

Operadores lógicos
04:33 min - 35

Ejecución condicional: if
07:45 min - 36

Proyecto: Adivina el número
09:36 min - 37

Ejecución condicional: ternario
05:24 min - 38

Ejecución condicional: switch
12:08 min - 39

Loop: for
07:31 min - 40

Loop: forEach
03:57 min - 41

Loop: for of
04:26 min - 42

Loop: for in
07:38 min - 43

Loop: while
03:56 min - 44

Loop: do while
03:13 min - 45

Proyecto: Juego adivina la palabra
15:56 min
Fundamentos de arrays y modificación
- 46

Introducción a Arrays
09:09 min - 47

Mutabilidad e inmutabiliad de Arrays
07:56 min - 48

Modificación básica del final con push(), pop()
04:33 min - 49

Ejercicio: Stack de libros
16:03 min - 50

Modificación del principio con shift(), unshift()
10:21 min - 51

Modificación avanzada con splice(), reverse(), sort(), fill()
16:37 min - 52

Proyecto: Juego de cartas
15:37 min - 53

Preguntas a Desarrolladores Senior: Estrategias y métodos de estudio
01:10 min
Iteración de Arrays
- 54

Iteración con map() y forEach()
12:53 min - 55

Filtrado y reducción con filter() y reduce()
11:34 min - 56

Ejercicio: Calificación promedio aprobatoria
05:27 min - 57

Búsqueda de elementos con find() y findIndex()
03:52 min - 58

Ejercicio: Encuentra al ganador de una rifa
11:21 min - 59

Proyecto: Análisis de transacciones
10:55 min - 60

Proyecto: Análisis de transacciones parte 2
08:01 min
Métodos específicos y Operaciones
- 61

Unir y entrelazar con concat(), spread operator y join()
12:05 min - 62

Verificación y evaluación con every() y some()
05:15 min - 63

Métodos de búsqueda con includes(), indexOf() y lastIndexOf()
07:05 min - 64

Ejercicio: Encontrando los índices
11:09 min - 65

Crear copias con slice()
05:28 min - 66

Spread operator: casos de uso
07:11 min
Arrays multidimencionales
Clases y Objetos
- 71

Anatomia de un Objeto
06:48 min - 72

Trabajando con objetos
12:52 min - 73

Función constructora
14:31 min - 74

¿Qué es una clase?
06:17 min - 75

Prototipos y herencias
02:15 min - 76

Herencia en la práctica
15:38 min - 77

Prototipos en la práctica
10:42 min - 78

this en JavaScript
05:36 min - 79

Proyecto: Crea una red social
12:25 min - 80

Proyecto: Crea una red social parte 2
09:00 min
Identificador this
Resumen
¿Qué es el identificador this o contexto de ejecución?
El identificador this es un concepto fundamental en JavaScript, que permite a las funciones saber a qué objeto pertenecen gracias al "contexto de ejecución". Imagina que tienes un perro (función) en una casa (objeto) con un letrero que indica el nombre del perro o el dueño de la casa. Si el perro está dentro de la casa, ya sabe a qué casa pertenece gracias a ese letrero. De forma similar, las funciones en JavaScript pueden saber a qué objeto pertenecen gracias a this.
Es importante tener en cuenta que si la función se ejecuta fuera de su objeto, el contexto this podría ser indefinido. Vamos a explorar en código este concepto en detalle.
¿Cómo enlazamos funciones y objetos con this?
Cuando las funciones pertenecen a un objeto, pueden acceder a las propiedades del objeto utilizando this. Veamos un ejemplo práctico:
const house = { dogName: 'Fido', dogGreeting: function() { console.log(`Hi, I'm ${this.dogName}`); } }; house.dogGreeting(); // Salida: Hi, I'm Fido
Aquí, house es un objeto que tiene una propiedad dogName y una función dogGreeting. La función usa this.dogName para acceder a la propiedad dogName del objeto house, mostrando el saludo correcto.
Enlace implícito (Implicit Binding)
El uso de this como en el ejemplo anterior se conoce como "enlace implícito" o "implicit binding". Esto sucede cuando this se refiere automáticamente al objeto al que la función pertenece.
house.dogGreeting(); // Utiliza el enlace implícito
Enlace explícito (Explicit Binding)
El enlace explícito permite forzar el contexto de this a un nuevo objeto. Utilizamos métodos como call para cambiar el contexto de this:
function dogGreeting() { console.log(`Hi, I'm ${this.dogName}`); } const newHouse = { dogName: 'Coconut' }; dogGreeting.call(newHouse); // Salida: Hi, I'm Coconut
Aquí, call se usa para vincular explícitamente this a newHouse, de modo que la función dogGreeting se ejecute en el contexto de newHouse.
¿Cómo manejamos parámetros adicionales en funciones vinculadas?
Podemos pasar argumentos adicionales a las funciones, manteniendo el contexto correcto. En este ejemplo, se agregan parámetros a la función para personalizar más el saludo:
function newDogGreeting(owner, address) { console.log(`Hola, soy ${this.dogName} y vivo con ${owner} en ${address}.`); } const anotherHouse = { dogName: 'Coconut' }; newDogGreeting.call(anotherHouse, 'Lucy', 'Avenue 123');
Consideraciones finales
- Enlace Implícito: Función dentro de un objeto accediendo a sus propiedades.
- Enlace Explícito: Uso de
callpara vincular funciones a nuevos objetos. - Paso de Parámetros: Se pueden manejar parámetros adicionales en las funciones usando el contexto correcto.
Al comprender el contexto de ejecución y cómo manipular this, puedes escribir código más flexible y reutilizable. Continúa practicando y aplicando estos conceptos fundamentales para dominar el lenguaje JavaScript.