 <p>Try this:</p> <pre><code>var maker = function(){ this.b = function(){return 1;}; this.c = b(); } var a = new maker(); console.log(a.b()); console.log(a.b); console.log(a.c); </code></pre> <p>the keyword 'new' is the key.</p> <p>You can create functions that just get called, without using 'new'</p> <p>or a functions that will create and return a new object and using new is needed, these are typically referred to as constructor functions, but the key thing is the use of keyword new here which changes the behavior of the function, notice that there is no 'return this;' line in the function, it's implied by using 'new'</p> <p>hope that helps. When that makes sense, look at the prototype process a bit deeper and play with it.</p>