0
JavaScript contact manager help - “A.print is not a function” error
function contact(name, number) { this.name = name; this.number = number; this.print = print(); } function print(){ console.log(contact.name + ":" + contact.number); } var a = new contact("David", 12345); var b = new contact("Amy", 987654321) a.print(); b.print();
3 Réponses
+ 2
function contact(name, number)
{
this.name = name;
this.number = number;
this.print = print; // remove ()
}
function print()
{
console.log(this.name + ": " + this.number);
// "this" refers to the calling object
}
var a = new contact("David", 12345);
var b = new contact("Amy", 987654321)
a.print();
b.print();
Don't use () when assigning a function as a class' member, when you use () with a function name, it means you are calling the function rather than assigning the function as a class' member.
Use `this` to refer the calling object when you need to access the said object's member.
+ 1
this operator is designed for class, we don't need to use this in functional module.
function contact(name, number) {
function print (){
console.log(name + ":" + number);
}
return {print};
}
var a = contact("David", 12345);
var b = contact("Amy", 987654321)
a.print();
b.print();
https://code.sololearn.com/Wgij9LdFG3ZL/?ref=app
0
Calviղ this assignment is in objects section. I think. Constructor functions are very very important part object oriented javascript. You don't need to use "this" in this assignment but it is very important to understand "this" in general.