// JavaScript source code
var foo = (function () {
    var o = { bar: "bar" };
    return {
        bar: function () {
            console.log(o.bar);
        }
    };
})();
foo.bar();What is going on? Is foo an object? Is it a named function? This looks like a hideous way to provide the class concept of private data members....
 
     
    