Each objects in JavaScript has a prototype.
// Object.prototype
// Person.prototype
function Person(firstName, lastName, dob){
this.firstName = firstName;
this.lastName = lastName;
this.birthday = new Date(dob);
}
// Calculate age - Prototype method
Person.prototype.calculateAge = function(){
const diff = Date.now() - this.birthday.getTime();
const ageDate = new Date(diff);
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
// Get full name - Prototype method
Person.prototype.getFullName = function(){
return `${this.firstName} ${this.lastName}`;
}
// Gets Married
Person.prototype.getsMarried = function(newLastName){
this.lastName = newLastName;
}
const gabor = new Person('Gabor', 'Flamich', '1984-11-24');
const john = new Person('John', 'Dow', '1990-08-12');
const erika = new Person('Erika', 'Swanson', '1970-12-09');
console.log(john.calculateAge());
console.log(erika.getFullName());
erika.getsMarried('Smith');
console.log(erika.getFullName());
console.log(erika.hasOwnProperty('firstName'));
console.log(erika.hasOwnProperty('getFullName'));
Leave a Reply