
If you've used a more traditional object-oriented language, such as C++ or Java, JavaScript probably doesn't seem object-oriented at all. It has no concept of classes, and you don't even need to define any objects in order to write code. But don't be fooled—JavaScript is an incredibly powerful and expressive object-oriented language that puts many design decisions right into your hands. In The Principles of Object-Oriented JavaScript, Nicholas C. Zakas thoroughly explores JavaScript's object-oriented nature, revealing the language's unique implementation of inheritance and other key characteristics. You'll learn: –The difference between primitive and reference values –What makes JavaScript functions so unique –The various ways to create objects –How to define your own constructors –How to work with and understand prototypes –Inheritance patterns for types and objects The Principles of Object-Oriented JavaScript will leave even experienced developers with a deeper understanding of JavaScript. Unlock the secrets behind how objects work in JavaScript so you can write clearer, more flexible, and more efficient code.
And I like this Principles of Object-Oriented Javascript book by Nicholas Zakas even though it's a little dated (example: its claim that there are no classes in JavaScript)
And I love everything by Kevin Powell:
https://www.youtube.com/@KevinPowell
edit* I want to add the The Odin Project has a ton of good material:
To me, "The Principles of Object-Oriented JavaScript" by the same author is the equivalent of K&R. Just don't be misled by the title, it covers the functional aspects of JavaScript as good as any other book and does not push for object-oriented programming as the one true way at all.
Secrets of the JavaScript Ninja [0]
The Principles of Object-Oriented JavaScript [1]