Deep JavaScript Foundations, v3

Objects Overview

Kyle Simpson

Kyle Simpson

You Don't Know JS
Deep JavaScript Foundations, v3

Check out a free preview of the full Deep JavaScript Foundations, v3 course

The "Objects Overview" Lesson is part of the full, Deep JavaScript Foundations, v3 course featured in this preview video. Here's what you'd learn in this lesson:

Kyle introduces the section of the course on objects.


Transcript from the "Objects Overview" Lesson

>> Kyle Simpson: At the outset of the course, I talked about three core pillars of the language. And one of those three core pillars that's very critical for you to understand is the objects oriented system. The objects, the this keyword and the prototypes, those make up the objects oriented system.

I'm deliberately saying objects oriented instead of object oriented because this is not strictly a class system, there is classes that have been layered on top of it. And that is an option that many people prefer, but it is not inherently a class system. So we're gonna start by understanding this keyword, which is one of the foundational pieces here.

We'll look at what the class system does, the class keyword layered on top of JavaScript. And then we'll circle back to understand where that is syntactic sugar on top of, which is actually the prototype system. And then after we've fully understood how JavaScript's objects system has been used to implement the class pattern, what I'm gonna leave you with at the end of this unit is a discussion about the inheritance pattern from classes as opposed to the delegation pattern.

And I'm gonna argue that the delegation pattern is a more powerful pattern that we basically aren't taking advantage of because we're focused on only doing classes with JavaScript's prototypes. The delegation pattern is much more powerful and much more widespread, but we sort of focus very myopically only on classes.

And that leads us to a comparison of coding styles where OO is class oriented in JavaScript, and I've come up with a different style of code that I call OLOO, which stands for objects linked to other objects.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now