function Person(name, age, greet) { this.name = 'Josh'; this.age = 15; this.greet = function(greeting) { console.log('Hello I am ', this.name) } } Person.greet();Estoy tratando de hacer que la consola muestre "Hola, soy Josh", aparece el mismo error que dice Person.greet no es una función
function Person(name, age, greet) { this.name = name; this.age = age; this.greet = function(greeting) { console.log('Hello I am', this.name) } } const max = new Person(); max.name = 'max'; max.age = 18; max.greet(); // Hello I am maxMe di cuenta de que estaba usando una función de fábrica, estaba destinado a crear un objeto usando la nueva palabra clave
Esto parece ser una función constructora y no un objeto, por lo tanto, debe llamar a new para crear una instancia de la función constructora antes de invocar los métodos.
// on a side note, if you're not going to use the arguments, better remove them altogether function Person(name, age, greet) { this.name = 'Josh'; this.age = 15; this.greet = function(greeting) { console.log('Hello I am ', this.name) } } const person = new Person(); person.greet();