JavaScript is a lightweight and powerful language, but it's often misunderstood and hard to learn (especially about its object oriented programming). Here are what I found:
Books
- JavaScript: The Good Parts by Douglas Crockfond, discusses many OOP topics in his 150 page book.
- 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.
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 - Modzilla
- 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
What are other 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.