Hi Andrew,
Sorry it has taken me so long to get back to you. New little addition to the family had me derailed for a while. :-)
The reason I used `batman` instead of `this` is because the value of `this` depends on how the function is called. If you try using `this` in the example above, you'll see that you get an error when `jimGordon.notifyObservers` is called. Simplified example:
Try running the following in your browser console.
var obj = {
fun: function () {
console.log(this);
}
};
obj.fun();
// => Object { fun: obj.fun() }
var fun = obj.fun;
fun();
// => Window
Another solution would be to to use Function#bind as explained here:
http://adripofjavascript.com/blog/drips/creating-bound-functions-with-function-bind.htmlHope that helps!
Josh Clanton