
All course files are available in the GitHub repository
Compare class-based and prototype-based inheritance, noting that languages like C++ and Java rely on class chains, while JavaScript uses a prototype chain allowing dynamic properties and flexible object inheritance.
Explore inheritance in JavaScript by comparing real-world vehicles like cars and airplanes, where common properties are shared and move and stop methods are inherited through prototypes.
Explore the prototype chain in JavaScript by tracing how an instance uses its own properties and reaches prototype methods like push through higher prototypes, and observe the length property.
Explore how the prototype chain links every object in JavaScript, using the visible __proto__ property to access the hidden [[Prototype]] link, including primitives, until reaching null.
Explore how prototypes drive JavaScript objects through the prototype chain and how object.prototype is the top level prototype. New objects inherit methods from their prototype via the constructor.
Never reassign a prototype of any object in JavaScript, as it breaks the prototype chain and causes unexpected errors; use safe alternatives like Object.create.
Explore native prototypes in JavaScript, tracing the prototype chain for arrays, strings, and numbers, and see how primitives access shared methods like toUpperCase and toFixed.
Every function in JavaScript is an object and an instance of function.prototype, and arrow functions assigned to variables do not have a prototype and thus cannot be used as constructors.
Learn prototypal inheritance in JavaScript by building a plane with function constructors and a prototype chain, showing how properties initialize on instances and methods live on prototypes.
Explore function constructors in JavaScript by defining a civil plane prototype, creating instances with new, and examining the prototype and constructor properties to understand prototype chains.
Learn how function constructors create new objects with the new keyword, automatically link to the constructor's prototype, and add properties like title and quantity to each instance.
Explore how function constructors create new objects, assign properties like number of seats, and link to the prototype, revealing what happens under the hood when using new.
Learn how function constructors use prototypes to share methods across instances, and how prototype chains enable inheritance, while contrasting this binding in regular versus arrow functions.
Explore how Object.create sets a new object's prototype to a parent object, forming a prototype chain and inheritance without using prototypes or constructors.
Demonstrates creating a child object with object.create using a parent as its prototype, showing inherited type and type info, and how modifying the parent's method affects the child.
Demonstrates building a prototype chain with function constructors, using object.create to set airplane prototype, inherit wingspan and max range, and preserve the constructor and airplane info method.
Learn how to insert a new prototype into an existing prototype chain by creating a new function and reassigning its prototype.
Insert a vehicle prototype into the existing prototype chain, adding max speed and weight properties and a vehicle info method, then verify behavior on small and large objects.
Learn to insert the vehicle prototype into the airplane prototype chain, define max speed and weight properties, and wire the inform method across airplane and vehicle prototypes, with console verification.
Explore the JavaScript prototype chain by using instanceof and typeof to verify instance relationships among plane, small plane, large plane, airplane, and vehicle, and distinguish objects from functions.
Fix mistakes in function constructors to create objects that pass verification, with energy efficiency, a string price, and the DV as an instance of the TV electric device product.
Fix mistakes in function constructors to build a correct prototype chain, move methods to prototypes, and ensure tv, electric device, and product instances inherit behavior.
Explore how the iOS 6 class syntax provides a declarative alternative to functional constructors, using a constructor, new instances, and a clear set of prototype-style methods, not an object literal.
Compare function constructors with ES6 classes to create objects with title and quantity, reuse methods via prototypes, and implement inheritance using extends and super.
Explore how JavaScript classes behave like function constructors, including class declarations, hoisting behavior, and the prototype chain, with constructor methods and class expressions.
Set default values for class properties and handle missing props with ternary logic; explore prototype chain, extends and super in constructors, plus rest and spread operators.
Practice demonstrates extending a parent class with methods, examining prototype chains and instance behavior, and using static methods on the class versus instance methods in JavaScript object oriented programming.
Practice converting function constructors to iOS 6 classes by rewriting a three-prototype chain for a TV, showing inheritance from electric device to product to object.
Convert function constructors to classes by building a three-level prototype chain with product, electric device, and glass, using extends, super, and constructor to define price and energy info.
Extend the built-in array by creating a custom extended array with two methods, some and only numbers, and test these methods on all elements using instances of the extended array.
Extend the built-in array with a custom extended array class, adding some and only numbers methods while inheriting all standard array behaviors.
Tackle a JavaScript object-oriented challenge that extends the built-in array with a custom push method, adds elements without push, updates the instance length, and examines prototype method precedence.
Create a custom push method for a subclass of array that updates the length property automatically, and compare it to bracket notation while logging results.
Explore how ES6 classes map to React components, revealing prototype chains, constructor and super calls, props, state, and render logic, with practical examples using Material UI and React elements.
Extend the previous lecture by adding a second React button below the first, with color secondary and contained variant, wiring a click counter to update the button text.
Reuse an existing React button component to create multiple buttons, configuring each with distinct props such as color and variant to render independently in the DOM.
Did you struggle to understand Prototypes, the Prototype Chain, or Classes in JavaScript? Do concepts like inheritance, function constructors, and object instantiation seem confusing?
Then this course is for you!
In this hands-on course, you will deeply explore Object-Oriented Programming (OOP) in JavaScript, gaining the skills to write cleaner, more structured, and reusable code. Understanding how JavaScript handles objects, inheritance, and encapsulation is essential for becoming a proficient JavaScript developer.
What You Will Learn:
• What is a Prototype? – Understand how JavaScript handles objects under the hood.
• How the Prototype Chain works – Learn how properties and methods are inherited.
• Creating and using Function Constructors – Master an older but essential way to create objects.
• Using Object.create() – Learn how to create objects without function constructors.
• How to inherit properties and methods – Implement inheritance correctly in JavaScript.
• Creating instances of specific prototypes – Learn how instances are linked to their prototype.
• The difference between classical and prototypal inheritance – Understand why JavaScript is different from languages like Java or C++.
• ES6 Classes and how they work internally – Uncover the modern approach to OOP in JavaScript.
• Super() and Extends – Learn how to create class hierarchies with ease.
• Encapsulation and private fields – Secure your data and improve code maintainability.
This course is practical and beginner-friendly, meaning you won’t just learn theory—you will write code, build prototypes, create objects, and explore inheritance in action. By the end of the course, you’ll feel confident in using OOP concepts in JavaScript to structure your applications effectively.
Whether you are preparing for a JavaScript interview, working on a real-world project, or simply looking to level up your JavaScript skills, this course will provide the clarity and hands-on practice you need.
Enroll now and take your JavaScript skills to the next level!