1 of 3
(function _anonymouswrapper(undefined) {
    var Skillet = {
        ingredient: "Bacon Strips",
        _isHot: true,
        fry: function fry(oliveOil) {
            this._addItem("\t\n Butter \n\t");
            this._addItem(oliveOil);
            this._addItem(this.ingredient);
            console.log("Frying " + this.ingredient);
        },
        addItem: function addItem(item) {
            console.log("Adding " + item.toString().trim());
        }
    };

    console.log(Skillet.ingredient);
    console.log(Skillet.fry());
    Skillet.quantity = "12";
    console.log(Skillet.quantity);

    Skillet._amountOfGrease = "1 Cup";
    Skillet.toString = toString;

    function toString() {
        console.log(this.quantity + " " +
                    this.ingredient + " & " +
                    this._amountOfGrease + " of Grease");
        console.log(this._isHot ? "Hot" : "Cold");
    }

    Skillet.toString();
}());

You can use a IIFE to emulate "module scope" around your code. Then you can just use objects as you normally do.

Don't "emulate" private state using closures as that has a large memory penalty.

If your writing an enterprise application and want to keep your memory usage under 1GB avoid closures like the plague.