I am trying to settle on a method that will provide me the most elegant way of wrapping my code in Namespace/Unit like objects. For example Google Maps API's var a  = Google.Maps.Foo();, which I think seems quite clean. 
I'd like it to enclose (if that is the right term) the jQuery No Conflict $ sign as well.
So far I am liking:
// Top level container for sub objects
var myApp = myApp || {}; 
// An object to be held in myApp     
(function( skillet, $, undefined ) {
    //Private Property
    var isHot = true;
    //Public Property
    skillet.ingredient = "Bacon Strips";
    //Public Method
    skillet.fry = function() {
        var oliveOil;
        addItem( "\t\n Butter \n\t" );
        addItem( oliveOil );
        console.log( "Frying " + skillet.ingredient );
        return "Fried!";
    };
    //Private Method
    function addItem( item ) {
        if ( item !== undefined ) {
            console.log( "Adding " + $.trim(item) );
        }
    }   
}( window.myApp.skillet = window.myApp.skillet || {}, jQuery ));
Can anyone expand on this, point out potential problems, or just offer a better methodology in general?
 
     
    