6. Classes in JS - marinakosova/master-the-coding-interview GitHub Wiki

// Classes in JS

// reference type
let obj1 = { value: 10 };
let obj2 = obj1;
let obj3 = { value: 10 }; // obj1 !== obj3 (true)

// context vs scope
// scope means {}
console.log(this); // assess to window object
// to create context:
const obj4 = {
    a: function() {
        console.log(this); // a: f()
    }
}

// instantiation
class Player {
    constructor(name, type) {
        this.name = name;
        this.type = type;
    }
    introduce() {
        console.log(`Hi I am ${this.name}, I'm a ${this.type}`);
    }
}

class Wizard extends Player {
    constructor(name, type) {
        super(name, type)
    }
    play() {
        console.log(`WEEEEEEE I'm a ${this.type}`);
    }
}

const wizard1 = new Wizard('Shelly', 'Healer');