¿Por qué de output me salta con “Hola, me llamo undefined undefined” y “undefined no es una persona alta” cuando ejecuto yury.saludar() ...

Yury D. Morales

Yury D. Morales

Pregunta
student
hace 7 años

¿Por qué de output me salta con “Hola, me llamo undefined undefined” y “undefined no es una persona alta” cuando ejecuto yury.saludar() y yury.soyAlto()?

function Persona (nombre, apellido, altura) { this.nombre = nombre this.apellido = apellido this.altura = altura } Persona.prototype.saludar = () => { console.log(`Hola, me llamo ${this.nombre} ${this.apellido}`) } Persona.prototype.soyAlto = () => { console.log(`${this.nombre} ${this.altura >= 1.8 ? 'es una persona' : 'no es una persona'} alta`) } var sacha = new Persona ('Sacha', 'Lifszyc', 1.8) var erika = new Persona ('Erika', 'Luna', 1.4) var yury = new Persona ('Yury', 'Morales', 1.9)
2 respuestas
    Victor Lozada

    Victor Lozada

    student
    hace 7 años

    Hola yury, debes usar las funciones normales

    function () {}
    para declarar metodos con
    prototype
    solo en caso de que quieras trabajar con
    this
    claro. Lo que ocurre es que las arrow functions toman como scope a
    window
    .

    Puedes probarlo tu mismo de esta forma:

    Persona.prototype.test = () => { console.log(this) } Persona.prototype.test1 = function (){ console.log(this) } sacha.test() sacha.test1()

    Veras algo así:

    Espero haberte ayudado ! 😀

    Jonathan Gonzalez Botero

    Jonathan Gonzalez Botero

    student
    hace 6 años

    @victorLozada como hiciste para grabar por pantalla lo que haces? awesome como lo hiciste

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.