Curso JavaScript: 58. call, apply, bind -

En este video te explico los métodos #call, #apply y #bind en #JavaScript.
💛 Aprende JavaScript aprendejavascript.org/
📖 Mis notas sobre JavaScript jonmircha.com/javascript
📖 Mis notas sobre ECMAScript jonmircha.com/ecmascript
📖 Mis notas sobre JavaScript Asíncrono jonmircha.com/javascript-asin...
📦 Códigos: github.com/jonmircha/youtube-js
🔔 Suscríbete al canal kzread.info?sub_con... 🤓
👉 Visita mi sitio web jonmircha.com/ 💻
🌮 ¿Me invítas un taco? www.paypal.me/jonmircha
📫 Suscríbete a mi lista de correo tinyletter.com/jonmircha/

Пікірлер: 129

  • 4 жыл бұрын

    Vengo de años de java en desarrollo.. Ahora me estoy metiendo a fondo en javascript.. Un lenguaje divertido y muy fácil de aprender... Lo venia pensando pero el video de hoy por cierto muy bueno.. Me dejó claro que javascript es un lenguaje muy raro..también

  • @Adormir123

    @Adormir123

    4 ай бұрын

    js es un enredo, tambien se java y nose pq me enreda tanto js XD

  • @elweonweandolaweafome
    @elweonweandolaweafome Жыл бұрын

    Espero mis apuntes les sirvan: /* '.apply' y '.call' son dos métodos que se utilizan en JavaScript para cambiar el contexto de una función. La principal diferencia entre '.apply' y '.call' es cómo pasan los argumentos a la función. .apply toma dos argumentos: el primer argumento es el contexto (o el objeto al que se desea cambiar el contexto) y el segundo argumento es un arreglo de argumentos para pasar a la función. .call, por otro lado, toma un argumento de contexto y luego una lista separada por comas de argumentos para pasar a la función. */ /*.bind() es un método en JavaScript que se utiliza para cambiar el contexto (o el "this" dentro) de una función. Es similar al uso de .call() y .apply(), pero tiene un comportamiento ligeramente diferente. Cuando se utiliza .bind(), se crea una nueva función con el mismo código que la función original, pero con el contexto especificado. Este nuevo objeto de función puede ser asignado a una variable y ejecutado más tarde. Además de cambiar el contexto, .bind() también permite pasar argumentos a la función cuando se crea. Estos argumentos se fijan y se pasan a la función cada vez que se llama a la función enlazada. En resumen, .bind() es una forma de crear una nueva función con un contexto específico y argumentos fijos, permitiendo una mayor flexibilidad al momento de usar las funciones y manejar los contextos.*/

  • @jonmircha

    @jonmircha

    Жыл бұрын

    👍🏻

  • @ConquistandoLaHistoria

    @ConquistandoLaHistoria

    Жыл бұрын

    chatgpt 😂

  • @elweonweandolaweafome

    @elweonweandolaweafome

    Жыл бұрын

    @@ConquistandoLaHistoria a veces

  • @valnetvln6802
    @valnetvln68023 жыл бұрын

    Comparto lo que dices, a mi me gusta siempre saber por qué está pasando cada cosa, o entender qué hace realmente cada línea de código, porque como bien lo mencionas, muchas personas solo copian lo que les funcionó, "a, esto sale así solo lo copio y ya está", pero realmente no están comprendiendo lo que ellos mismo están haciendo. Y esto trae problemas en proyectos más grandes. Buen vídeo, y gracias por compartir tus conocimientos.

  • @carlosjavierorozco8418
    @carlosjavierorozco8418 Жыл бұрын

    Lo entendi a grosso modo... falta practicarlo bastante. Gracias!

  • @jonmircha

    @jonmircha

    Жыл бұрын

    😉👍🏻

  • @Juicio87
    @Juicio87 Жыл бұрын

    Grande John, me encanta que vas al fondo de la cuestión para que entendamos por qué se utilizan las cosas. Este el aprendizaje que me gusta

  • @jonmircha

    @jonmircha

    Жыл бұрын

    👋🏻😉

  • @hernansanabria9685
    @hernansanabria96858 ай бұрын

    sept 11 1969**Oct 22 2023 gracias excelente curso felicidades John Mircha

  • @jonmircha

    @jonmircha

    8 ай бұрын

    👋🏻😉

  • @fredlituma389
    @fredlituma3894 жыл бұрын

    Excelente y valioso material.

  • @emersonpalaciootalvaro2632
    @emersonpalaciootalvaro26323 жыл бұрын

    gracias parcero, muy buen material

  • @marturanga
    @marturanga2 жыл бұрын

    Vengo del futuro (estoy haciendo el curso de React y me estaba volviendo loco por porfundizar en THIS) gracias!!!!!!!!

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    Mucha suerte!

  • @frankfarfan3107
    @frankfarfan31072 жыл бұрын

    Ahora todo encaja, muchas gracias Jhon :D

  • @cumpaMira
    @cumpaMira2 жыл бұрын

    Gracias profe!

  • @juanbarrionuevo3320
    @juanbarrionuevo33203 жыл бұрын

    Gracias por otro gran video!!

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    Con gusto

  • @Wiiiiizard
    @Wiiiiizard Жыл бұрын

    🧙‍♂ Muchas gracias por los videos!!!

  • @jonmircha

    @jonmircha

    Жыл бұрын

    Gracias por ver

  • @timawid
    @timawid11 ай бұрын

    Este curso es oro

  • @jonmircha

    @jonmircha

    11 ай бұрын

    👋🏻😉

  • @fjdeveloper
    @fjdeveloper4 жыл бұрын

    Muchas gracias Jon por tu aportación. Muy bien explicado.

  • @jonmircha

    @jonmircha

    4 жыл бұрын

    De nada, comparte para llegar a más gente :)

  • @camilogomez5243
    @camilogomez52432 жыл бұрын

    Muchas graciaaaaas Jon!!!

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    De nada!!

  • @alexumah8300
    @alexumah83002 жыл бұрын

    Grande Jon es muy cierto hay que saber las bases y tenemos al mejor enseñandonos :D

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    🙈🙌🏻

  • @Ni_idea_de_tecnologia
    @Ni_idea_de_tecnologia7 ай бұрын

    Yo no he trabajado con react pero ya llegará. Eso hace que me cueste ver para que sirven todo esto. Pero seguiré practicando. Muchas gracias Sr.Mircha

  • @jonmircha

    @jonmircha

    7 ай бұрын

    👋🏻😉

  • @danielfabiani4468
    @danielfabiani4468 Жыл бұрын

    Muchas gracias por hoy. Saludos.

  • @jonmircha

    @jonmircha

    Жыл бұрын

    Saludos!

  • @sackc.g3343
    @sackc.g33434 жыл бұрын

    Genial explicación Jon, que fácil lo haces para entender. Gracias por tu aporte a la comunidad!

  • @jonmircha

    @jonmircha

    4 жыл бұрын

    De nada, comparte para llegar a más gente :)

  • @aldairmarcelo5432
    @aldairmarcelo54322 жыл бұрын

    Gracias Jon!!!

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    😉🙌🏻

  • @guillermoamarilla9601
    @guillermoamarilla96012 жыл бұрын

    Muy Claro, muchas Gracias

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    🤓👍🏻

  • @daniabuaf
    @daniabuaf2 жыл бұрын

    Increíble explicación, Jon!!!!!

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    😀👋🏻

  • @noeltaverascastillo3677
    @noeltaverascastillo3677 Жыл бұрын

    hola Jon, nuevamente. en verdad nunca habia tocado nada de javaScritp; pero ya veo lo importante que es este lenguaje. este curso en verdad me ha enseñado bastante, gracias por tu gran empeño de enseñar tus conocimientos. son invaluable!.. y espero ver un curso de vanilla-js si lo tienes disponible de luego de este.

  • @carlesbautista8293
    @carlesbautista82933 жыл бұрын

    Lo he entendido muy bien, muchisimas gracias por tanto aporte Jonathan :)

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    De nada!

  • @johanposadaagudelo6103
    @johanposadaagudelo6103 Жыл бұрын

    Gracias profe

  • @jonmircha

    @jonmircha

    Жыл бұрын

    😉👍🏻

  • @nachosanabria6942
    @nachosanabria6942 Жыл бұрын

    gracias muy buen video

  • @jonmircha

    @jonmircha

    Жыл бұрын

    Gracias por comentar

  • @nachosanabria6942
    @nachosanabria69422 жыл бұрын

    gracias excelente video

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    Gracias por comentar

  • @williamalexanderpineda6098
    @williamalexanderpineda6098 Жыл бұрын

    Muchas gracias maestro!

  • @jonmircha

    @jonmircha

    Жыл бұрын

    😉

  • @developer1328
    @developer13283 жыл бұрын

    gracias por ese consejo al final, voy a tener que mirar de nuevo ambos videos del this.

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    ;) de nada !!!!

  • @naqzher
    @naqzher4 жыл бұрын

    muy bueno, salu2 from ARG ! :D

  • @jonmircha

    @jonmircha

    4 жыл бұрын

    Gracias! Saludos!

  • @gabrielperdomo9329
    @gabrielperdomo93293 жыл бұрын

    Concuerdo con tu opinión Jon. Yo vengo del Backend y al intentar meterme en el front empece por React y me di cuenta de que era necesario saber primero javascript. Gracias por tu dedicación!!

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    ;)

  • @valentinserassio4742
    @valentinserassio474211 ай бұрын

    Excelente trabajo

  • @jonmircha

    @jonmircha

    11 ай бұрын

    👋🏻😉

  • @luismonagas573
    @luismonagas573 Жыл бұрын

    Entendido como se enlazan contextos o entornos.. Saludos desde Venezuela (26/04/2023)😀😀😀😀😀

  • @jonmircha

    @jonmircha

    Жыл бұрын

    😉👋🏻

  • @sebastianmorales823
    @sebastianmorales8233 жыл бұрын

    Otro gran video profe jon, si cambia bastante el this respecto a otros lenguajes, muchas gracias profe por compartir esto de forma gratuita

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    ;)

  • @mauriciotorres6815
    @mauriciotorres68152 жыл бұрын

    Justo hace pocos dias me comentaste que primero me aprenda bien el lenguaje y luego el framework. El tema es que en el afan por conseguir trabajo rapido te dan ganas de pasarte al framework lo antes posible

  • 3 жыл бұрын

    8:21 he propado call con un objeto literal, y funciona! gracias por compartir tu conocimientos y saludos desde brasil

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    ;)

  • @edgarzambrano3505
    @edgarzambrano35052 жыл бұрын

    buen video profe gracias

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    Gracias. Saludos

  • @miguelsarmiento9268
    @miguelsarmiento92684 жыл бұрын

    eso me pasaba realmente 15:40 pero hacia porque funcionaba por esto trate de ver estos videos porque se que tu realmente explicas muy bien

  • @jonmircha

    @jonmircha

    4 жыл бұрын

    :)

  • @elimora9033
    @elimora90333 жыл бұрын

    bind() funciona como call(), si la hacemos autoejecutable: personaDos.saludar.bind(pesonaUno)() Este llamado de saludar(), tomará el contexto de la instancia personaUno, a pesar de ser llamado por personaDos.

  • @brandon400
    @brandon4003 жыл бұрын

    empecé a aprender react y tuve que volver a bind. iba a escribir como un changuito jasjj buen video jon

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    😁

  • @eribertmarquez452

    @eribertmarquez452

    3 жыл бұрын

    me paso lo mismo jajajaja

  • @johnherrera5913
    @johnherrera59132 жыл бұрын

    Master! Buen Curso lo mejor es que aplicas ejemplos

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    Muchas gracias!

  • @manoloexplaintome6348
    @manoloexplaintome63482 жыл бұрын

    Me resulta gracioso lo del "Código viejo del 2016"..., cuando de vez en cuando aun me toca cambiar algún programa hecho en CLIPPER en el año 1990.

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    😂🤣🤭

  • @diegoarmandocastillohernan9942
    @diegoarmandocastillohernan99423 жыл бұрын

    if( this.entendio() ){ nextVideo() }else{ replay() } // nextVideo 🔥🔥🔥

  • @davidlionheart2875
    @davidlionheart28752 жыл бұрын

    Creo que lo tengo. Igual cualquier dura puedo volver y se que Call, apply y bind son sumamente importantes. (En el contexto de este codigo antiguo, ya se que los componentes funcionales y los hook son lo realmente utilizado) Gracias

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    Excelente!

  • @R4z0r_arg
    @R4z0r_arg4 жыл бұрын

    Hola Jon, muchas gracias por compartir tus conocimientos, he tomado cursos de vue js tuyos y la verdad que no encontré mejores explicaciones. Volverás a subir algún día Vue.Js? Saludos y felíz día del trabajador desde Argentina!!

  • @jonmircha

    @jonmircha

    4 жыл бұрын

    Saludos, probablemente cuando termine este curso empezré con contenido de React o Vue :)

  • @mikehurtado4772
    @mikehurtado47724 жыл бұрын

    Y conoces alguna forma de usar elementos externos a un setInterval que no implique pasarle this a la funcion?

  • @marioyanez1883
    @marioyanez18834 жыл бұрын

    Jon te preguntaba por el chat para que se utiliza bind(), cual es su objetivo, Ejemplo: Si tengo una función en un componente y necesito mostrar la información de dicha función dentro de otro componente cual sería el objetivo de crear una función y pasar dentro de él el bind(), y al utilizar arrow function en la función inicial es viable utilizar bind()? Aprecio toda tu ayuda y estos excelentes cursos.

  • @jonmircha

    @jonmircha

    4 жыл бұрын

    Justamente las arrow function vienen a hacer que se deje de utilizar bind cada vez menos, bind simplemente va a enlazar un contexto diferente con el objeto o función en el que lo estes usando, es todo :) pero gracias a las arrows se usa menos hoy

  • @mikehurtado4772
    @mikehurtado47724 жыл бұрын

    El call funciona clavado a commit de Vuex al ejecutar mutaciones

  • @javierginer8557
    @javierginer85572 жыл бұрын

    Mircha, Messi y Maradona xD!!! Muchisimas gracias sensei por iluminarnos!!

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    Un saludo! mejor con Cristiano y Pelé 🤭😉

  • @mikehurtado4772
    @mikehurtado47724 жыл бұрын

    Apply como mapActions, mapState, etc

  • @reactivoJS
    @reactivoJS Жыл бұрын

    Buenas, me parece muy curioso que las funciones dentro de un objeto no creen su propio scope, pero en cualquier otro caso si...

  • @braianrico4422
    @braianrico44222 жыл бұрын

    Ey veo a Batman cada vez mas lejos jajaja Jon mil gracias, Bendiciones !!! 🧙‍♂️🧙‍♂️🧙‍♂️

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    Gracias por ver

  • @alejogarcia3498
    @alejogarcia3498 Жыл бұрын

    pregunta: en la consola del navegador funcionan bien todos los ejemplos,pero... cuando los ejecuto desde la consola de Vs code la primer funcion saludar esta tomando undefined como valor del this.lugar.... alguien sabe por que es asi?

  • @yagorodi
    @yagorodi3 жыл бұрын

    Hola Jon una consulta, recomendas algún libro para aprender JavaScript más en profundidad? Muchas gracias!

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    SOy más de Documentación pero hay uno que se llama Eloquent JS

  • @jn-olmos
    @jn-olmos3 жыл бұрын

    Gracias Profe Jhon. Una consulta, al momento de ejecutar el console.log(this) en el navegador me lo marca como undefined. Probe tanto en firefox dev y google chrome. Hay alguna actualizacion o algo?

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    EN que parte lo pones, si lo pones directo en el scope global this siempre sera el objeto Window

  • @jn-olmos

    @jn-olmos

    3 жыл бұрын

    @@jonmircha Lo coloco directamente profesor, en un documento limpio (validado que funciona). Simplemente la salida en la consola del navegador es undefined

  • @heimancastro1954
    @heimancastro1954 Жыл бұрын

    🤯🤯🤠🤠

  • @jonmircha

    @jonmircha

    Жыл бұрын

    😉👍🏻

  • @heferh4320
    @heferh43202 жыл бұрын

    creo que con esta clase creo que me quedo mas claro lo del this indirectamente xd // como la funcion anonima esta generando su scope dentro del objeto, y como esta funcion (metodo) es parte del obj // el this dentro de la funcion ya se refiere al contexto del objeto , por cierto Jon , el usar apply o call ya es preferencia de uno o tendran momentos especiales ?

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    👍🏻

  • @sergiocr4266
    @sergiocr42663 жыл бұрын

    el nombre de la propiedad del objeto otraPersona = {} debe ser igual al metodo saludar del objeto persona?

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    de preferencia

  • @leandroazcurra3039
    @leandroazcurra3039 Жыл бұрын

    Hola Jon, muchas gracias por tu curso! Pero te tengo una duda, estaba probando todo lo de este video y me larga error y despues de buscar un poco me parece que es por el nuevo "globalThis" ¿Puede ser o nada que ver? PD: También descargué el archivo con todos los contenidos para probar si no fue error mio y tampoco me funcionaba

  • @jonmircha

    @jonmircha

    Жыл бұрын

    😮

  • @ivantg4572
    @ivantg4572 Жыл бұрын

    el curso que tienes de react funciona asi este desactualizado? o han cambiado muchas cosas?

  • @jonmircha

    @jonmircha

    Жыл бұрын

    MI curso sigue vigente

  • @jorgerafaelcallejoflores67
    @jorgerafaelcallejoflores674 жыл бұрын

    console.log(this) // me da undefined, solo me reconoce globalThis, por que ocurre esto?

  • @AngelLopez-rd6mt

    @AngelLopez-rd6mt

    2 жыл бұрын

    Realiza tu códgo sobre una etiqueta script console.log(this)

  • @jimmyroserovallejo
    @jimmyroserovallejo3 жыл бұрын

    Entonces voy por camino correcto, yo si dije, primero entender java script para entrar a otras cosas.

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    😉👌

  • @albertsanfle5030
    @albertsanfle50306 ай бұрын

    function Persona1(Nombre) { this.Nombre = Nombre; return () => { console.log(this.Nombre); }; } let ap = new Persona1("Albert sanfle ); ap(); // Para resumir una funcion anonima tiene su propio scope y por lo tanto apunta al siguiente entonces una arrow fuction // sucede el caso que no tiene y apunta al padre obj en maneras llanas por lo tanto en conclusion todo depende del contexto , para el video anterior quien se le quedo una espina y tuvo que verlo dos vces

  • @chamocol3614
    @chamocol36143 жыл бұрын

    Console.log(this) no me imprime me da undefined que hago disculpen

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    Depende donde lo este imprimeindo, sube tu código a un codepen

  • @chamocol3614

    @chamocol3614

    3 жыл бұрын

    @@jonmircha apenas estoy aprendiendo javascript y mi primer this fue como usted lo hizo en el video pero con la diferencia que a ami me imprimió undefined

  • @PedroChuc
    @PedroChuc3 жыл бұрын

    me declaro un changuito hasta antes de este video U.U

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    🙊🙈🙉🐵

  • @VanHelsing2021
    @VanHelsing20212 жыл бұрын

    bind es un poquito complicado xD

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    😜

  • @wilmeralexanderv9078
    @wilmeralexanderv90783 жыл бұрын

    Todos pasamos por algun momento con un mal profesor que nos tocaba escribir como changuitos porque explicaba mal jajajaj

  • @jonmircha

    @jonmircha

    3 жыл бұрын

    🙈🙊

  • @carloscontreras6051
    @carloscontreras60512 жыл бұрын

    Dedicarte como changuito, jajaja Debe ser lo peor que le puede pasar a un desarrollador eso

  • @jonmircha

    @jonmircha

    2 жыл бұрын

    🙈🙊🙉🐵