Christian Danilo Osorio Romero
PreguntaVengo 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`); }*/
Abraham Gonzalez
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
Excelente !!!

Sebastian Ruiz Palacio
Wow, super util el aporte!
Christian Danilo Osorio Romero
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
¡Excelente aporte compañero!