function Person(name, age, greet) {
this.name = 'Josh';
this.age = 15;
this.greet = function(greeting) {
console.log('Hello I am ', this.name)
}
}
Person.greet();
I'm trying to get the console to show "Hello I am Josh", I get the same error saying Person.greet is not a function
CodePudding user response:
This seems to be a constructor function, and not an object, hence, you need to call new
to create instance of the constructor function before invoking the methods.
// 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();
CodePudding user response:
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 max
I realised that I was using a factory function, I was meant to create an object using the new keyword