Object-oriented Programming in JavaScript
Solidify your understanding of JavaScript and prepare for technical interviews.
[Link]
01 Getting Started
1.001 What is OOP
[Link]
1.002 Four Pillars of OOP
[Link]
1.003 Setting Up the Development Environment
[Link]
1.004 Course Structure
[Link]
02 Objects
2.001- Introduction
[Link]
2.002- Object Literals
[Link]
2.003- Factories
[Link]
2.004- Constructors
[Link]
2.005- Constructor Property
[Link]
2.006- Functions are Objects
[Link]
2.007- Value vs Reference Types
[Link]
2.008- Adding or Removing Properties
[Link]
2.009- Enumerating Properties
[Link]
2.010- Abstraction
[Link]
2.011- Private Properties and Methods
[Link]
2.012 Getters and Setters
[Link]
2.013- Exercise- Stop Watch
[Link]
2.014- Solution- Stopwatch
[Link]
03 Prototypes
3.001- Inheritance
[Link]
3.002- Prototypes and Prototypical Inheritance
[Link]
3.003- Multi-level Inheritance
[Link]
3.004- Property Descriptors
[Link]
3.005- Constructor Prototypes
[Link]
3.006- Prototype vs. Instance Members
[Link]
3.007- Iterating Instance and Prototype Members
[Link]
3.008- Avoid Extending the Built-in Objects
[Link]
3.009- Exercise
[Link]
3.010- Solution
[Link]
04 Prototypical Inheritance
4.001- Creating Your Own Prototypical Inheritance
[Link]
4.002- Resetting the Constructor
[Link]
4.003- Calling the Super Constructor
[Link]
4.004- Intermediate Function Inheritance
[Link]
4.005- Method Overriding
[Link]
4.006- Polymorphism
[Link]
4.007- When to Use Inheritance
[Link]
4.008- Mixins
[Link]
4.010- Exercise Prototypical Inheritence
[Link]
4.011- Solution Prototypical Inheritance
[Link]
4.012- Exercise- Polymorphism
[Link]
4.013- Solution- Polymorphism
[Link]
05 ES6 Classes
5.001- ES6 Classes
[Link]
5.002- Hoisting
[Link]
5.003- Static Methods
[Link]
5.004- The This Keyword
[Link]
5.005- Private Members Using Symbols
[Link]
5.006 Private Members Using WeakMaps
[Link]
5.007- Getters and Setters
[Link]
5.008 Inheritance
[Link]
5.009- Method Riding
[Link]
5.011- Exercise
[Link]
5.012- Solution
[Link]
06 ES6 Modules
6.001- Modules
[Link]
6.002- CommonJS Modules
[Link]
6.003- ES6 Modules
[Link]
6.004- ES6 Tooling
[Link]
6.005- Babel
[Link]
6.006- Webpack
[Link]