What’s the difference in these codes if they work same?
const name = "Nick";
const age = 21;
const print = function(){
console.log(`Mr. ${name} is ${age} years old`);
};
const person = {name, age, print};
print();
and this one
const name = "Nick";
const age = 21;
const print = function(){
console.log(`Mr. ${this.name} is ${this.age} years old`);
};
const person = {name, age, print};
person.print();
The first one doesn’t require const person to work at all.
You are creating an object person that references the const name / age and the function print() now as properties and a method of person
So in effect you are creating a ‘person’ for no reason.
maybe this will help…
const name = "Nick";
const age = 21;
const print = function(){
console.log(`Mr. ${name} is ${age} years old`);
};
let person = {
who: name,
howOld: age,
painter: print,
printer: function(){
console.log(`${this.who} is ${this.howOld} today`)
}
}
print();
person.painter()
person.printer()
print() is calling const print
person.painter() is calling const print
person.printer() is calling person[printer]
if you call printer() you will get an error printer not defined because printer() is only defined on the person object.
whereas person.painter is saying person.painter = const print find const print and call it
1 Like