Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
Ben Nadel at dev.Objective() 2015 (Bloomington, MN) with: Jeff Kunkel
Ben Nadel at dev.Objective() 2015 (Bloomington, MN) with: Jeff Kunkel@Nerdtastic91686 )

JavaScript Enlightenment By Cody Lindley

By Ben Nadel on

Two years ago, I read jQuery Enlightenment by Cody Lindley. I vividly remember being very impressed with how much information Cody had gotten across to the reader with such a concise book. Cody's explanatory style favors simple code over prose, leaving the reader with bite-sized examples that he or she can easily "grok" (as Cody might put it). And so, when I was asked to be a technical reviewer for his new book - JavaScript Enlightenment - not only was I flattered, I was also very excited to be part of a book that would, no doubt, continue the trend in excellent set forth by its predecessor.


JavaScript Enlightenment by Cody Lindley, review by Ben Nadel.  

JavaScript Enlightenment is not quite as concise as jQuery Enlightenment; however, Cody definitely makes heavy use of his "technical thin-slicing" approach. In fairness, JavaScript, as a language, is a bit of a beast. Although it is a beautiful language, the complexity and flexibility of its inner-workings do require a deeper exploration than that of the (comparatively simple) jQuery API. Still, JavaScript Enlightenment is a quick read (about 140 pages) that one can easily get through in a single day.

In JavaScript, just about everything is an object; or, can be used as an object. To understand objects and the relationships between them is to understand JavaScript. And so, it is with this in mind that JavaScript Enlightenment takes the reader on a very thorough exploration of objects in a JavaScript context.

Not only does Lindley explain how most of the native Objects work (String, Number, Object, Function, etc.), he talks about user-defined objects and object constructors. He also talks about how objects work in the prototype chain, how inheritance works, and how variable references get resolved in the scope chain. He looks at how properties work - how they are set, gotten, and deleted. He talks about breaking out of function execution and about dynamically changing function execution context at runtime.

In short, Lindley finds just about every nook and cranny related to Objects in JavaScript and shines a light on it.

Now, this book is not a book about design patterns. It doesn't cover application architecture or give the reader a bevy of tips and tricks for writing code. It simply explains the way JavaScript works at a fundamental level. While this might sound basic, the fact is, we live in a time where developers can write "jQuery" or "Prototype" or "ExtJS" code without really understanding the underlying language. I can't tell you how many times I've been at a MeetUp group and heard a developer say something like, "Now that I know jQuery, I'm thinking about learning JavaScript."

Libraries like jQuery, Prototype, Backbone, and Spine are paving the way for complex, client-side applications. This is the future of web development. But in order to really take advantage of these libraries, it is critical that you fully understand the way JavaScript works as a language. And to do that, you need to understand Objects. JavaScript Enlightenment by Cody Lindley will make sure that happens.

Reader Comments

"Now that I know jQuery, I'm thinking about learning JavaScript."

OMG... Rully?

How old are these peop... (stops, looks around at coworkers)... nevermind.

Yeah, I do not fully understand these JavaScript concepts (Prototype/Object), yet I can still use frameworks like jQuery and Dojo. Probably need to deep dive into these base language concepts some day. I'm familiar with Java OO and it's foundations... but that hasn't helped these JavaScript concepts sink in yet.

I find it interesting that Cody didn't seem to include any date or copyright information on the book (not even the build-in tools that PDF's usually offer.)

Does he intend this to be some sort of Creative Commons thing?

(Cuz' if so, I'm totally sharing this with all my friends. ;-P)


My understanding is that, under current US copyright law, ALL creative expression is now intrinsically copyrighted, even if the author doesn't explicitly declare it copyrighted.

If you create a work that's derivative of a work protected by intrinsic copyright, it could be "innocent infringement". (You have the defense "I didn't know the author intended it to be copyrighted.") As I understand it, that's the purpose of "takedown notices". That is, you haven't committed a tort yet because copyright wasn't declared, but you have to take it down, now that you know it's copyrighted.

I'm not a lawyer. And some of that is word-of-mouth from intellectual property lawyers I've talked to (= second hand information, subject to miscommunication).

Also, I haven't bought the book yet, because I'm handling some work emergencies. So I don't know whether or not Cody said "You can use these snippets.". But in general, it's always safest to rely on one's own creative expression.