I’ve been coding javascript for a few years now. Primarily I’ve experimented with it for fun or done some basic essential form validation scripts, but nothing to really test the power of the language (and it is a beautifully flexible language) until I was required to do some page interactivity for a job. I did what many people do and turned to jQuery because frankly there are some effects in jQuery that are too time consuming to do traditionally. If you know javascript and haven’t tried jQuery, you’re living under a rock and have some catching up to do. Don’t worry though, the reason everyone loves jQuery is because it’s so damned easy.
Anyway, jQuery has some magic under the hood that does all sorts of things for you. It’s a crutch, and other than using it I haven’t expanded on my javascript skills in ages. That’s why this tutorial by Nathan Whitehead on javascript closures was like a holy grail to me. It was quick, fun to do, and most importantly it taught me something new about the language. Actually it taught me several new things, many of them about style and how to view functions in more abstract terms. I already knew functions, classes, and everything else in javascript were objects, but I never played with them or saw much use for it.
Continuation passing and closure were both completely new. I thought I had passed the point when a tutorial would be useful for me, but Nathan found something worth teaching and props to him for sharing his knowledge in such an accessible way.