moringaman
4/14/2019 - 8:37 PM

Javascript_class_example

let firstNameSymbol = Symbol();
let lastNameSymbol = Symbol();
let ageSymbol = Symbol();

class Person {
   constructor(firstName, lastName, age) {
     this[firstNameSymbol] = firstName;
     this[lastNameSymbol] = lastName;
     this[ageSymbol] = age + 2;
   }
   greet(name) {
     return "Hello there " + name + " my name is " + this[firstNameSymbol] + ' ' + this[lastNameSymbol] + " & I'm "  + this[ageSymbol]
   }

   get firstName(){
     return this[firstNameSymbol]
   }

   get lastName() {
     return this[lastNameSymbol]
   }

   get age () {
     return this[ageSymbol]
   }

   static renamejack(person, lastName){
     person[lastNameSymbol] = lastName;
   }
 }

let jack = new Person("Jack", "Jacobs", 26)//?

jack.greet("Leon")//?
jack.firstName //?
jack.lastName //?
jack.age  = 29 //?
jack instanceof Person //?
jack.age //?
Person.renamejack(jack, "Simmons") //?
jack.lastName //?
jack.greet("moe") //?