The basic concept of a Revealing Module is that you have an Object which encapsulates its data and behavior:
var Module = (function(){
    var privateStuff = {};
    var publicStuff = {};
    return publicStuff;
})();
However, there are some best practices you should employ when using this pattern. Here's a module ("Modulus") with some properties for demonstration sake, which employs some of these practices:
function AbstractSomeClass(id) {
    this.id = id;
    return this;
}
var Modulus = (new (function SomeClass() {
    var thus = this;
    function NameClass(name){
        this.value = thus.name || name;
    }
    AbstractSomeClass.call(this, 998);
    this.name = 'Touring';
    this.name = ( new NameClass('Hofstadter') ).value;
    return {
        id: this.id,
        name: this.name
    };
})());
Notice the (new (function SomeClass(){ ... })()); syntax. Using new like this allows you to use the this keyword inside of the closure. This is handy if you need to inherit properties from another class (AbstractSomeClass.call(this, 998);) -- However, you'll still need to reveal the properties that you would like to have public, e.g.:
return {
    id: this.id,
    name: this.name
};
Also notice that we assign this to thus -- which allows us to use the Parent-this inside of a subclass that has its own this scope (this.value = thus.name || name;)
Once again, these are just a few of the conventions and best practices that are suggested.