this, Prototypes and Classes
How `this` is decided, call/apply/bind, the prototype chain, what `new` really does, classes, private fields, inheritance and composition.
Phase 6 taught you objects as bags of properties. This phase explains the machinery underneath: how a function knows which object it is working on (**this), how you can choose that object yourself (call, apply, bind), and how one object can borrow properties from another through the prototype chain**, the single idea that powers every method you have used so far, from [].map to "hi".toUpperCase.
Then you'll build objects the three ways JavaScript offers: **constructor functions with new, classes (ES2015, with fields, static members and getters), and private #fields (ES2022) that nothing outside the class can touch. You'll learn inheritance** with extends and super, and finally when not to use it: composition, mixins and delegation, and when a plain object and a few functions beat a class.
Every topic shows the real mechanism, with live examples whose console output you can predict and check. These ideas come up in almost every JavaScript interview, and you'll meet them again in the DOM phase (event handlers and this), in custom elements (class extends HTMLElement) and in every framework.
Practise this phase
Hands-on exercises: write the code, see your page live, and press Check to have it tested automatically.