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
11:38 min - 24

Métodos bind, call y apply
Viendo ahora - 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
Métodos bind, call y apply
Resumen
¿Cómo manipular el contexto de ejecución de una función?
Cuando programamos en JavaScript, una de las habilidades clave que debemos dominar es la capacidad de manipular el contexto de ejecución de una función, es decir, el uso adecuado del this. Esta habilidad no solo mejora nuestra comprensión del lenguaje, sino que también optimiza nuestras habilidades para resolver problemas. A continuación, exploraremos tres métodos fundamentales que nos permitirán lograr esto de manera eficaz: call, apply y bind.
¿Cómo usar el método call?
El método call nos permite establecer explícitamente el contexto (this) de una función en el momento en que se llama. Esto es especialmente útil cuando necesitamos ejecutar una función con un contexto específico que difiere de su contexto original.
-
Definición de la función
Comenzamos creando una función de saludo para un perro:function dogGreeting(owner, address) { console.log(`Hola, soy ${this.dogName} y vivo con ${owner} en ${address}`); } -
Creación de un objeto
Definimos un objeto que contiene el nombre del perro:const newHouse = { dogName: 'Coconut' }; -
Ejecución con call
Utilizamoscallpara ejecutar la función con el objetonewHousecomo contexto y pasamos los parámetros necesarios:const owner = 'Lucy'; const address = '123 Avenue'; dogGreeting.call(newHouse, owner, address);Esto producirá: "Hola, soy Coconut, y vivo con Lucy en la avenida 123."
¿Cómo funciona apply de manera diferente a call?
El método apply es similar al call, pero difiere en cómo recibe los parámetros. En lugar de pasar los argumentos de forma individual, apply los recibe como un array.
-
Creación de un array de parámetros
Agrupamos los parámetros que la función requiere:const necessaryValues = [owner, address]; -
Ejecución con apply
Ahora llamamos a la función usandoapply, pasando el contexto y el array de parámetros:dogGreeting.apply(newHouse, necessaryValues);El resultado sigue siendo el mismo, pero esta vez los argumentos se pasan de manera agrupada.
¿Cuál es el propósito de bind?
El método bind, a diferencia de call y apply, no ejecuta la función inmediatamente. En su lugar, devuelve una nueva función con un contexto fijado, que podemos ejecutar más adelante a demanda.
-
Creación de la función vinculada
Creamos una nueva función vinculando el contexto usandobind:const bindingWithBind = dogGreeting.bind(newHouse, owner, address); -
Ejecución de la función
Finalmente, podemos ejecutar esta nueva función en cualquier momento:bindingWithBind();Esto nos da flexibilidad para ejecutar la función cuando sea necesario y con el contexto correcto.
Factores a considerar al elegir el método adecuado
call: Útil para ejecutarse inmediatamente cuando conocemos los parámetros individuales de antemano.apply: Práctico cuando los parámetros están organizados dentro de un array.bind: Perfecto cuando la ejecución de la función se debe postergar para un momento específico o cuando se quiere crear una función con un contexto predeterminado.
Elegir el método correcto puede mejorar la eficiencia de tu código y la flexibilidad de las funciones durante la ejecución. ¡Sigue explorando y experimentando para dominar este poderoso aspecto de JavaScript!