JavaScript Object-Oriented Masterclass
4.2 (36 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
6,373 students enrolled

JavaScript Object-Oriented Masterclass

Write robust, highly maintainable and elegant JavaScript applications by deeply understanding Object-Oriented JavaScript
4.2 (36 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
6,373 students enrolled
Created by Mehdi Maujood
Last updated 1/2019
English
English [Auto-generated]
Current price: $11.99 Original price: $129.99 Discount: 91% off
3 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 4 hours on-demand video
  • 33 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Objects and functions
  • Scopes and closures

  • The "this" keyword and call, bind and apply functions

  • The module pattern
  • Prototype-based object-oriented programming
  • Prototypes vs classes
  • A deep-dive into the constructor pattern
  • Classes
  • Concatenative inheritance and prototype-based OOP
  • Multiple Inheritance using concatenative inheritance
  • Private variables and functions
  • Introduction to TypeScript
  • Explore a real-world object-oriented JavaScript application
Course content
Expand all 38 lectures 04:07:24
+ Foundations
10 lectures 47:50
Creating functions
02:17
The global scope
02:41
Bind, call and apply
05:25
The local scope
03:28
Scopes and closures II
05:54
Scopes and closures III
05:03
+ Objects from other objects: The heart JavaScript object-oriented programming
5 lectures 27:43
The prototype chain
04:47
Object properties and the prototype chain
03:31
Functions and the prototype chain
02:43
Reference types and the prototype chain
07:56
+ The constructor pattern
5 lectures 34:04
Constructor pattern vs prototypical OO, part 1
09:27
Constructor pattern vs prototypical OO, part 2
08:03
+ Prototypical OO through cloning
3 lectures 20:35
Object.assign
06:18
Object-oriented programming through cloning
04:59
Multiple inheritance
09:18
+ Private state through closure
2 lectures 17:13
Private state and the constructor pattern
09:07
Adding private state to the rest of the examples
08:06
+ Private state through WeakMaps
5 lectures 28:15
Introduction to WeakMaps
06:40
WeakMaps and the constructor pattern
07:46
WeakMaps and the prototypical pattern
05:51
WeakMaps and classes
04:14
WeakMaps and the concatenative pattern
03:44
+ TypeScript: Adding static type-checking to JavaScript
5 lectures 43:40
Introduction to TypeScript
06:03
Basic types
04:56
Complex types using interfaces
08:08
TypeScript and prototypical OOP
16:22
TypeScript and classes
08:11
Requirements
  • Basic knowledge of JavaScript (3 months+ experience)
  • HTML
  • Knowledge of class-based object-oriented programming (Java, C#, C++, etc.)
  • Programming knowledge
Description

"- the use of classes ... is the source of a number of complications. This paper discusses prototypes as an alternative to classes ... In a prototype-based language, copying rather than instantiation is the mechanism provided to the user for making new objects."

This is a line from a 1986 research paper discussing prototypes as an alternative to classes. Did you know that JavaScript is a prototype-based language and does not need classes? Did you know that JavaScript's Object-Oriented system is actually simpler than classes?

Unfortunately, due to the language being marketed as "Java's little brother", something called the "constructor pattern" was designed as a way to for the language to "look like" class-based Java. The decision to conceal JavaScript's true identity as a prototype-based language in favor of something that looked like half-baked classes has led to widespread confusion among developers that lives to this day.

In this course, we will explore JavaScript's true identity as a prototype-based language and look at different ways of doing OOP in JavaScript. We don't ignore classes or constructors - we will study them deeply and learn how they are abstractions over a prototype-based system and learn how to effectively utilize them.

In this lesson, we will learn how to write effective, maintainable and robust object-oriented code using JavaScript.

Who this course is for:
  • Beginning and intermediate JavaScript developers.
  • Advanced JavaScript developers: Many advanced developers I know are unfamiliar with OO secrets of JavaScript