JavaScript is a lightweight and powerful language, but it's often misunderstood and hard to learn (especially about its object oriented programming).
What are the good materials (blogs, screencasts and books) to learn JavaScript OOP? The topics can be anything, but let's not include browsers, AJAX and libraries for now.
Also how did you learn the functional programming, closure, object, inheritance and design patterns in JavaScript? Personally I would like to see more code examples because some of the books I mentioned above keep the example minimal.
(EDIT: As this post is now community effort, please help maintain and develop the following list of resources!)
Books
- JavaScript: The Good Parts by Douglas Crockfond, This is the book recommended by most of Javascripters on Stack overflow. I observed, People have advanced their skills in java script with this book. Visit his website: crockford.com for more information.
- Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries by Stoyan Stefanov, goes through many OOP topics such as Objects, Prototype, Inheritance and some patterns.
- Pro JavaScript Design Patterns, by Ross Harmess and Dustin Diaz, discuss application of famous design patterns in JavaScript.
Videos
- "Advanced JavaScript" videos by Douglas Crockford. Many other interesting videos are available at Yahoo! Developer Network.
- The Definitive Guide to Object-Oriented JavaScript by James Shore (July 2013).
On Stack Overflow
- A Stack Overflow discussion on JavaScript closure
- A Stack Overflow discussion on What exactly does “closure” refer to in JavaScript?
- A Stack Overflow discussion on Prototypal vs Functional OOP in JavaScript
Others
- Introduction to Object-Oriented JavaScript - Mozilla Dev
- JavaScript Closures for Dummies
- JavaScript Closures
- JavaScript Closures 101
- Private Members in JavaScript by Douglas Crockfond
- Classical Inheritance in JavaScript by by Douglas Crockfond
- Prototypal Inheritance in JavaScript by by Douglas Crockfond
- JavaScript, time to grok closures
- Mozilla developer network