I'm a
java programmer. When I switch to JavaScript, I find some concepts are hard to understand.
Functional Programming.
It's a new concept to programmers who get used to OO. Function is the first-class object, can be assigned to a variable, passed as parameters and returned from other functions. When I finally get it(I'm not sure if I *really* get it.), it gives me a great pleasure to programming. I feel good when I read
EloquentJavaScript. That book covers a lot of functional programming. It even covers MapReduce!
Closure
I'm still not sure if I get it. Context binding with functions. I use it in my program, But I don't feel the power of it. What does closure bring to programming? What could not be done or harder to do without closure?
Prototype based inheritence
I find the articles by Yehuda Katz is very good at explaining the concept.
Understanding JavaScript Function Invocation and "this"
Understanding "Prototypes" in JavaScript
How to write OO style program with Prototype based inheritence.
I find some utility methods to help programmers write OO style program easier. And the js libraries provide such modules. Take Dojo for example, I can write with it without knowing javascript's prototype.
These are the hard problems from a perspective of a java programmer. Does your book covers these topics in an easy to understanding way? I do read lots of articles on these topics. But I don't think I totally get them.
Thanks,
Louis