Vengo de un curso de Udemy donde explicaron esto y se comieron todo lo anterior XD. Tengo una duda, por qué no funciona con arrow functio...

Christian Danilo Osorio Romero

Christian Danilo Osorio Romero

Pregunta
studenthace 4 años

Vengo de un curso de Udemy donde explicaron esto y se comieron todo lo anterior XD. Tengo una duda, por qué no funciona con arrow functions? Otra cosa con la que quiero aportar es que pueden declarar su objeto como una función anónima. Me parece que queda más estético. Les comparto mi código.

Si no me equivoco porque aún sigo aprendiendo saludar lo pueden hacer dentro de su objeto persona y eso es un método. Me pica la curiosidad y me gustaría si alguien sabe el porque cuando utilizo arrow functions fuera de mi objeto obtengo undefined

let Persona = function(nombre, apellido, edad) { this.nombre = nombre; this.apellido = apellido; this.edad = edad; //ESTO ES UN MÉTODO /*this.saludar = () => { console.log(`Hola mi nombre es ${this.nombre} y tengo ${this.edad} años`); }*/ } Persona.prototype.despedirse = function() { console.log(`Nos vemos, fue una placer conocerte. Se despide ${this.nombre}`); } let Christian = new Persona('Christian', 'Osorio', 19); Christian.despedirse(); // ESTO ARROJA UNDEFINED ¿? /*Persona.prototype.saludar = () => { console.log(`Hola mi nombre es ${this.nombre} y tengo ${this.edad} años`); }*/
5 respuestas
para escribir tu comentario
    Abraham Gonzalez

    Abraham Gonzalez

    studenthace 4 años

    Amigo para comenzar, alli no estas usando Arrow Function, sino un landa function o función anónima.

    Creo que no se comportan de igual manera, los arrow function suelen usarse en un callback.

    Eros Nahuel Puca

    Eros Nahuel Puca

    studenthace 4 años

    Excelente !!!

    Sebastian Ruiz Palacio

    Sebastian Ruiz Palacio

    studenthace 4 años

    Wow, super util el aporte!

    Christian Danilo Osorio Romero

    Christian Danilo Osorio Romero

    studenthace 4 años

    Hola! Soy yo del futuro. Mucho más adelante en el curso hay una clase que se llama "Contexto de la funciones: quien es this".. Ahí aclaran todo y ya sé porque da Undefined. Explico:

    Cuando se usa una Arrow Functions en el Scope Global "this" hace referencia al objeto más cercano que sería windows. Y en windows no existen las propiedades que definimos en nuestros código.

    Ahora cuando utilizamos "this" dentro de nuestro objeto cambia porque hacemos referencia al Scope Local. Es decir el mundo que existe dentro de nuestra función persona.

    Melsar Otoniel Andrade Castillo

    Melsar Otoniel Andrade Castillo

    studenthace 4 años

    ¡Excelente aporte compañero!

Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.

Fundamentos de JavaScript 2018
Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.