- Basic knowledge of JavaScript
- HTML
- Knowledge of class-based object-oriented programming
- Programming experience
“- 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.
- Beginning and intermediate JavaScript developers.
- Advanced JavaScript developers: Many advanced developers I know are unfamiliar with OO secrets of JavaScript