Object.create isn't creating a new object using the module pattern
<p>If I create multiple objects using Object.create() on an object literal, I get multiple unique objects that don't share property values. However, when I use Object.create() on an object returned from a module, it looks like they share the same reference? Why is that?    </p>

<h2>#1 Module:</h2>

<pre><code>var objModule = (function () {
  var name = "module 1";
  var setName = function( strName ) {
    name = strName;
  };
  var getName = function() {
    return name;
  };

  return {
    setName: setName,
    getName: getName
  };
}());

var objModule2 = Object.create(objModule);
objModule2.setName("module 2");

console.log(objModule.getName()); // WRONG prints "module 2"
console.log(objModule2.getName()); // prints "module 2"
</code></pre>

<h2>#2 Literal:</h2>

<pre><code>var objLiteral = {
  name : "literal 1"
};
var objLiteral2 = Object.create(objLiteral);
objLiteral2.name = "literal 2";

console.log(objLiteral.name); // prints "literal 1"
console.log(objLiteral2.name); // prints "literal 2"
</code></pre>

<h2>EDIT</h2>

<h2>#3 Module "Constructor":</h2>

<pre><code>var module = function () {
  var name = "module 1";
  var setName = function( strName ) {
    name = strName;
  };
  var getName = function() {
    return name;
  };

  return {
    setName: setName,
    getName: getName
  };
};

var objModule1 = module();
var objModule2 = module();
objModule2.setName("module 2");

console.log(objModule1.getName()); // prints "module 1"
console.log(objModule2.getName()); // prints "module 2"
</code></pre>

<h2>EDIT</h2>

<p>If I use the module like a constructor (as suggested by @Matt Browne) and create 2 objects, the result is like using an object literal. What I'd like to understand is why does module example #1 behave differently than module example #3?</p>

<h2>EDIT 2</h2>

<p>As @ben336 explained, the code:</p>

<pre><code>var objModule2 = Object.create(objModule); 
</code></pre>

<p>will set the objModule2's prototype to objModule. That doesn't happen in example #3, so those two objects don't share the same closure property.</p>
