 <p>First of all, this is how you do it:</p> <pre><code>var outer = function() { this.inner = { innermost: function() { alert("innermost"); } } } var outer = new outer; outer.inner.innermost(); </code></pre> <p>The reason why it didn't work the way you did it is because you define a function <code>inner</code> - so <code>outer.inner</code> is a function. You could do <code>var inner = new (outer.inner)();</code> and then call <code>inner.innermost();</code> but that's obviously ugly and not what you want.</p>