11-30-2024, 01:58 AM
JavaScript: The Hard Parts of Object Oriented JavaScript (2018)
WEBRip | English | MP4 + Project files | 1920 x 1080 | AVC ~1156 kbps | 30 fps
A_VORBIS | 192 Kbps | 48.0 KHz | 2 channels | ~4.5 hours | 2.54 GB
Genre: Video Tutorial
Quote:Learn the fundamentals of Object Oriented Programming in JavaScript for organizing and scaling your code. You'll learn JavaScript's prototypal design and how it works to enable the new ES6 classes under the hood. Understanding prototypes and classes in JavaScript is crucial for working with most modern frameworks and for those coming from traditional OOP languages.Table of Contents:
Introduction
Course Introduction
00:00:00 - 00:06:12
Course Introduction
Will Sentance introduces the ideology of the course, what makes a great software engineer, Codesmith, and how to get the most out of what is taught.
Object Oriented Paradigm
00:06:13 - 00:11:59
Object Oriented Paradigm
Will gives an overview of what will be taught and then answers why a paradigm, or way of organizing code, exists at all.
Object Creation
Creating an Object
00:12:00 - 00:14:56
Creating an Object
Will starts by establishing objects as the best method to encapsulate data and functionality.
Object dot Notations
00:14:57 - 00:16:47
Object dot Notations
The basic way to assign data to an existing object is introduced.
Object.create
00:16:48 - 00:19:25
Object.create
Will uses Object.create to start a conversation about the DRY principle.
Creating Objects with Functions
00:19:26 - 00:31:28
Creating Objects with Functions
Will diagrams solution 1, a function that returns an object when initiated. It's then explained why the solution wouldn't work in practice.
Prototype & new
Avoid Duplication with Prototype
00:31:29 - 00:33:52
Avoid Duplication with Prototype
Will introduces the next problem to be solved, which is refactoring the previous solution into one that uses object.create to create objects, but still has access to the functionality.
Prototype Walkthrough
00:33:53 - 00:41:31
Prototype Walkthrough
Will diagrams solution 2 using Object.create and prototype chaining with input from the audience.
Prototype Chain
00:41:32 - 00:52:25
Prototype Chain
Will traces the diagramed solution using increment() on the instantiated user1, demonstrating how JavaScript accesses the function. Lessons are taken away from the solution that impacts the way we consider object oriented programming in JavaScript
new & this Keywords
00:52:26 - 00:55:34
new & this Keywords
Will introduces the `new` keyword and what it automates in object creation, but also how it instantiates the need to refer to it.
Functions are Objects & Functions
00:55:35 - 01:02:33
Functions are Objects & Functions
Will maps out the object that gets attached to each instantiated function, and what it contains.
new Keyword & Share Functions with prototype
01:02:34 - 01:19:06
new Keyword & Share Functions with prototype
Will diagrams solution 3 using the new keyword and prototype chaining with input from the audience.
Review of new
01:19:07 - 01:26:43
Review of new
Will speaks to the benefits and disadvantages that solution 3 has, and topics covered later are foreshadowed.
Scope & this
Calling Prototype Methods
01:26:44 - 01:35:43
Calling Prototype Methods
Will refactors solution 3 to include the implicit parameter, this. As the solution is diagramed, attention is given to when this is useful, and how scope comes into play.
this Keyword Scoping Issues
01:35:44 - 01:43:03
this Keyword Scoping Issues
The UserCreator.prototype.increment function is refactored further, and this poses an interesting problem with scope.
Solving Scope with Arrow Functions
01:43:04 - 01:48:42
Solving Scope with Arrow Functions
Will diagrams how arrow functions bypass the issue introduced in the previous section.
ES6 class Keyword
01:48:43 - 01:56:25
ES6 class Keyword
WIll introduces how JavaScript implements class syntactic sugar.
Recap of the class Keyword
01:56:26 - 02:01:07
Recap of the class Keyword
Will explains how classes in JavaScript are much different than in true OOP languages, and ties the previous sections into the next section of the course.
Default Prototype Chain
Objects default __proto__
02:01:08 - 02:09:14
Objects default __proto__
Will uses an example to further explain how __proto__ is built into every object in JavaScript. In addition to __proto__, hasOwnProperty is a built-in method that has bonus functionality afforded to it.
Function.prototype and Array.prototype
02:09:15 - 02:20:29
Function.prototype and Array.prototype
WIll diagrams the prototype chain when calling a method on a function.
Pair Programming OOJS
02:20:30 - 02:23:18
Pair Programming OOJS
Will directs students to the practice problems and sets up pair programming.
Subclassing with Factory Functions
Intro to Subclassing and Inheritance
02:23:19 - 02:28:08
Intro to Subclassing and Inheritance
Will introduces inheritance as a way to create subclasses within JavaScript and explains why inheritance is a misleading term.
Create object with Factory Function
02:28:09 - 02:41:38
Create object with Factory Function
Solution 3 is further refactored to implement classes. Will traverses the code with the audience.
Create a Sub-Factory Function
02:41:39 - 02:46:45
Create a Sub-Factory Function
Will sets up the next bit of code and explains how this code is interacting with the code that was written in the previous segment. Object.setPrototypeOf is utilized to set the __proto__ of a function to achieve the functionality that we need.
Creating an object with a Sub-Factory Function
02:46:46 - 02:58:40
Creating an object with a Sub-Factory Function
Will continues to diagram the solution and demonstrates how the sub-factory function affects the functionality of an object that is instantiated.
Prototype Lookup
02:58:41 - 03:01:49
Prototype Lookup
Will concludes this solution by diagramming a prototype lookup by an object that was previously instantiated.
Subclass Review
03:01:50 - 03:06:44
Subclass Review
Will reviews what was learned up until now in the course, and looks towards the call and apply functions that will be introduced to control the assignment of the this keyword.
Call and Apply
03:06:45 - 03:15:29
Call and Apply
WIll demonstrates how to manually set the value of the this keyword inside of a function.
Subclassing with new and call
Create an Object with new
03:15:30 - 03:25:35
Create an Object with new
Will diagrams a refactored solution that provides the store of automatically linked functions by utilizing the new keyword.
Creating a Subclass with a Constructor
03:25:36 - 03:32:19
Creating a Subclass with a Constructor
WIll diagrams a solution that uses the new keyword, but then also uses a prototype chain to grant an object access to certain classes, while another doesn't.
Using a call Method in a Constructor
03:32:20 - 03:43:42
Using a call Method in a Constructor
By passing our newPaidUser object (`this`) to userCreator, Will demonstrates how this can refer to a context that is one level up from the current scope.
Assigning Properties to Instance
03:43:43 - 03:49:37
Assigning Properties to Instance
Will diagrams how instantiating a paidUser object using the new keyword would create a new context to consider.
Prototype Tracing
03:49:38 - 03:52:46
Prototype Tracing
Will traces the diagramed solution using called functions on the instantiated paidUser, ensuring that functions are specific to the paid user type, but are available to all users.
Subclassing with class, extends & super
Create an Object with a class
03:52:47 - 04:01:14
Create an Object with a class
WIll diagrams a user object that is instantiated using the new keyword. No functions are copied on it, but they are still available for use.
Creating a Subclass with extends
04:01:15 - 04:10:29
Creating a Subclass with extends
Will introduces the extends, and diagrams what it offers to the refactored code.
Creating an object with a subclass
04:10:30 - 04:18:03
Creating an object with a subclass
The last execution context of the course is instantiated, and a paidUser is created using the new keyword. Will also briefly covers reflect.construct(), which acts like the new keyword, but as a function.
Using super in a subclass constructor
04:18:04 - 04:28:36
Using super in a subclass constructor
Will arrives at the final solution, where a paidUser1 has access to paidUser functionality, and user functionality. The paidUser1 also has the properties of a regular user by using the regular userCreator.
Conclusion
Wrapping Up
04:28:37 - 04:30:27
Wrapping Up
Will concludes the course with reasoning why it's important to understand what is going on under the hood in JavaScript.
also You can watch my other last:
[To see links please register or login]
Screenshots
Exclusive eLearning Videos ← add to bookmarks