Is it good practice to use, instead of this Revealing Module Pattern ...
var MyModule = ( function() {
function Method1() { alert( 'method1' ); }
function Method2() { Method1(); alert( 'method2' ); }
function Method3() { Method1(); alert( 'method3' ); }
function Method4() { Method1(); alert( 'method4' ); }
return { Method1 : Method1, // these
Method2 : Method2, // lines
Method3 : Method3, // are
Method4 : Method4 }; // redundant...
} )();
MyModule.Method1();
MyModule.Method2();
... this slight variation:
var MyModule = {};
( function() {
var Method1 = MyModule.Method1 = function () { alert( 'method1' ); };
var Method2 = MyModule.Method2 = function () { Method1(); alert( 'method2' ); };
var Method3 = MyModule.Method3 = function () { Method1(); alert( 'method3' ); };
var Method4 = MyModule.Method4 = function () { Method1(); alert( 'method4' ); };
} )();
MyModule.Method1();
MyModule.Method2();
Is it 100% the same at the end? Would this considered as good practice?
It's not the same. If you were to rename your module at any time or wish to use it in a different name, you won't be able to.
Also, by returning the object at the end of the array, you make it perfectly clear what's exposed out of the object.