object-oriented-programming-in-javascript
Started\
0:00 What is OOP
1:45 Four Pillars of OOP
8:48 Setting Up the Development Environment
11:04 Course Structure
\
14:00 Introduction
14:45 Object Literals
17:48 Factories
20:40 Constructors
26:16 Constructor Property
28:41 Functions are Objects
33:28 Value vs Reference Types
39:18 Adding or Removing Properties
43:11 Enumerating Properties
46:02 Abstraction
50:04 Private Properties and Methods
54:10 Getters and Setters
59:46 Exercise- Stop Watch
1:01:55 Solution- Stopwatch
\
1:04:27 Inheritance
1:06:53 Prototypes and Prototypical Inheritance
1:12:26 Multi-level Inheritance
1:15:18 Property Descriptors
1:20:25 Constructor Prototypes
1:24:18 Prototype vs. Instance Members
1:30:23 Iterating Instance and Prototype Members
1:33:02 Avoid Extending the Built-in Objects
1:34:44 Exercise
1:36:17 Solution
Inheritance\
1:41:56 Creating Your Own Prototypical Inheritance
1:47:31 Resetting the Constructor
1:51:32 Calling the Super Constructor
1:55:21 Intermediate Function Inheritance
1:58:26 Method Overriding
2:01:56 Polymorphism
2:06:18 When to Use Inheritance
2:09:42 Mixins
2:15:35 Exercise Prototypical Inheritence
2:18:54 Solution Prototypical Inheritance
2:24:48 Exercise- Polymorphism
2:27:24 Solution- Polymorphism
Classes\
2:32:35 ES6 Classes
2:38:16 Hoisting
2:42:02 Static Methods
2:46:20 The This Keyword
2:51:17 Private Members Using Symbols
2:59:06 Private Members Using WeakMaps
3:06:05 Getters and Setters
3:08:55 Inheritance
3:12:56 Method Riding
3:15:29 Exercise
3:18:55 Solution
Modules\
3:23:16 Modules
3:26:58 CommonJS Modules
3:32:50 ES6 Modules
3:36:14 ES6 Tooling
3:37:41 Babel
3:44:53 Webpack