parent
37f0989975
commit
5048cc49a2
@ -0,0 +1,110 @@
|
|||||||
|
class Person {
|
||||||
|
constructor(firstName='Ivy', lastName='Graham', age=30, country='USA', city='Santa Cruz') {
|
||||||
|
console.log(this) // should be empty upon instantiation
|
||||||
|
this.firstName = firstName
|
||||||
|
this.lastName = lastName
|
||||||
|
this.age = age
|
||||||
|
this.country = country
|
||||||
|
this.city = city
|
||||||
|
this.score = 0
|
||||||
|
this.skills = []
|
||||||
|
}
|
||||||
|
// class methods
|
||||||
|
getFullName() {
|
||||||
|
const fullName = this.firstName + ' ' + this.lastName
|
||||||
|
return fullName
|
||||||
|
}
|
||||||
|
get getScore() {
|
||||||
|
return this.score
|
||||||
|
}
|
||||||
|
set setScore(score) {
|
||||||
|
this.score += score
|
||||||
|
}
|
||||||
|
get getSkills() {
|
||||||
|
return this.skills
|
||||||
|
}
|
||||||
|
set setSkill(skill) {
|
||||||
|
this.skills.push(skill)
|
||||||
|
}
|
||||||
|
getPersonInfo() {
|
||||||
|
let fullName = this.getFullName()
|
||||||
|
let skills =
|
||||||
|
this.skills.length > 0 &&
|
||||||
|
this.skills.slice(0, this.skills.length - 1).join(', ') +
|
||||||
|
` and ${this.skills[this.skills.length - 1]}`
|
||||||
|
let formattedSkills = skills ? `They know ${skills}` : ''
|
||||||
|
|
||||||
|
let info = `${fullName} is ${this.age}. They live in ${this.city}, ${this.country}. ${formattedSkills}`
|
||||||
|
return info
|
||||||
|
}
|
||||||
|
static favoriteSkill() {
|
||||||
|
const skills = [
|
||||||
|
'JavaScript',
|
||||||
|
'React Native',
|
||||||
|
'HTML',
|
||||||
|
'SaSS',
|
||||||
|
'Java',
|
||||||
|
'Python'
|
||||||
|
]
|
||||||
|
const index = Math.floor(Math.random() * skills.length)
|
||||||
|
return skills[index]
|
||||||
|
}
|
||||||
|
static showDateTime() {
|
||||||
|
let now = new Date()
|
||||||
|
let year = now.getFullYear()
|
||||||
|
let month = now.getMonth() + 1
|
||||||
|
let date = now.getDate()
|
||||||
|
let hours = now.getHours()
|
||||||
|
let minutes = now.getMinutes()
|
||||||
|
if (hours < 10) {
|
||||||
|
hours = '0' + hours
|
||||||
|
}
|
||||||
|
if (minutes < 10) {
|
||||||
|
minutes = '0' + minutes
|
||||||
|
}
|
||||||
|
|
||||||
|
let dateMonthYear = date + '.' + month + '.' + year
|
||||||
|
let time = hours + ':' + minutes
|
||||||
|
let fullTime = dateMonthYear + ' ' + time
|
||||||
|
return fullTime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Student extends Person{
|
||||||
|
saySomething() {
|
||||||
|
console.log('I am a child of the Person class')
|
||||||
|
console.log(`I am ${this.firstName}.`)
|
||||||
|
console.log(this.getPersonInfo())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const person1 = new Person()
|
||||||
|
console.log(person1)
|
||||||
|
person1.setScore = 1
|
||||||
|
person1.setSkill = 'Acupuncture'
|
||||||
|
person1.setSkill = 'Herbal Medicine'
|
||||||
|
person1.setSkill = 'Mantic Arts'
|
||||||
|
person1.setSkill = 'Traditional Chinese Medicine'
|
||||||
|
console.log(person1.getSkills)
|
||||||
|
console.log(person1.getPersonInfo())
|
||||||
|
|
||||||
|
const person2 = new Person('Derrek', 'Gass', 32, 'USA', 'Santa Cruz')
|
||||||
|
console.log(person2)
|
||||||
|
person2.setScore = 1
|
||||||
|
person2.setSkill = 'JavaScript'
|
||||||
|
person2.setSkill = 'React Native'
|
||||||
|
person2.setSkill = 'HTML'
|
||||||
|
person2.setSkill = 'SaSS'
|
||||||
|
person2.setSkill = 'Java'
|
||||||
|
person2.setSkill = 'Python'
|
||||||
|
console.log(person2.getSkills)
|
||||||
|
console.log(person2.getPersonInfo())
|
||||||
|
|
||||||
|
console.log(Person.favoriteSkill())
|
||||||
|
console.log(Person.showDateTime())
|
||||||
|
|
||||||
|
const student1 = new Student('Tobias', 'the Cat', 10, 'USA', 'Santa Cruz')
|
||||||
|
student1.setSkill = 'Meowing'
|
||||||
|
student1.setSkill = 'Purring'
|
||||||
|
console.log(student1.saySomething())
|
Loading…
Reference in new issue