Hola, tengo este código escrito y quiero que el resultado sea "bill jones es un snowboarder con habilidades para principiantes en las pistas". Obtengo "function () { return this.firstName + " " + this.lastName; } es un snowboarder con habilidades para principiantes en las pistas". Creo que el problema es la forma en que llamo al método fullName pero estoy atascado.
https://codepen.io/stefan927/pen/yLPJdQG?editors=1111
(function() { const fullName = document.getElementById('fullName'); const type = document.getElementById('type'); const ability = document.getElementById('ability'); function Person(firstname, lastname, type, ability) { this.firstName = firstname; this.lastName = lastname; this.type = type; this.ability = ability; } Person.prototype.fullName = function() { return this.firstName + " " + this.lastName; } var skier = new Person('Bill', 'Jones', 'snowboarder', 'beginner'); fullName.textContent = skier.fullName; type.textContent = skier.type; ability.textContent = skier.ability; }())Como señaló Pointy (sin juego de palabras) en su comentario, no está llamando a la función fullName que se invoca con un par de () . Entonces, en su código fullName.textContent = skier.fullName debería ser fullName.textContent = skier.fullName() . Eso debería resolver tu problema.
Ha agregado fullName al prototipo de Person y es una function .
Por lo tanto, debe call/invoke esta función.
fullName.textContent = skier.fullName(); //added () to fullName