The Principles of Object-Oriented JavaScript
Nicholas C. Zakas
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.
javascript software-architecture frontend intermediate deep-dive practical design-patterns functional-programming
js architecture internals under the hood hands-on hands on