Acabo de empezar a aprender javascript y parece que no puedo llamar a un método de objeto correctamente. Incluso copié y pegué el código de aquí para tratar de entender mi error, pero solo devuelve el código como una cadena. Mi código:
function greetings(name){ document.getElementById('someText').innerHTML = 'Hello' + ' ' + name; } const person = { firstName: "John", lastName: "Doe", id: 5566, fullName: function() { return this.firstName + " " + this.lastName; } }; greetings(person.fullName); <div id="someText"></div>Y el resultado:
Hola function() { return this.firstName + " " + this.lastName; }
Debe llamar al método, que devolverá una cadena del nombre de la persona, y luego se pasará a la función de saludos.
Sin el () el método no se ejecuta y el método mismo se pasa a la función de saludos.
Dado que se trata como una cadena en la función, se llama al método toString() en la función, lo que da como resultado el código de función en sí.
function greetings(name){ document.getElementById('someText').innerHTML = 'Hello' + ' ' + name; } const person = { firstName: "John", lastName: "Doe", id: 5566, fullName: function() { return this.firstName + " " + this.lastName; } }; greetings(person.fullName()); console.log(person.fullName.toString()); <div id="someText"></div>Puedes resolver tu problema de dos maneras.
//firstly greetings(person.fullName()); // calling the function when you pass it as a Arguments. // secondly function greetings(name){ document.getElementById('someText').innerHTML = 'Hello' + ' ' + name(); // if you always except a function as a peramiter just call it when you use it. }define fullName como una propiedad de objeto de persona que es una función. Para obtener el valor adecuado, debe llamar a la función. usamos () después del nombre de la función para llamarla. si la función no la llamó, devuelve el cuerpo de la función.
ya que fullname como una función aquí:
fullName: function() { return this.firstName + " " + this.lastName; } entonces tienes que llamarlo , como: greetings(person.fullName()); con los soportes adicionales al final