How to set up JavaScript namespace and classes properly?
===

It seems there are so many ways to set up a JavaScript application so it is confusing as to which one is correct or best. Are there any difference to the below techniques or a better way of doing this?

    MyNamespace.MyClass: {
        someProperty: 5,
        anotherProperty: false,
    
        init: function () {
            //do initialization
        },
    
        someFunction: function () {
            //do something
        }
    };
    
    $(function () {
        MyNamespace.MyClass.init();
    });

Another way:

    MyNamespace.MyClass = (function () {
        var someProperty: 5;
        var anotherProperty: false;
    
        var init = function () {
            //do something
        };
    
        var someFunction: function () {
            //do something
        };
         
        return {
            someProperty: someProperty
            anotherProperty: anotherProperty
            init: init
            someFunction: someFunction
        };
    }());
     
    MyNamespace.MyClass.init();

The first technique *feels* more like a class. I am coming from server-side background if this makes a difference. The second technique seems more redundant and a bit awkward, but I see this used a lot too. Can someone please help shed some light and advise the best way to move forward? I want to create a application with lots of classes talking to each other.