Should I add *internal* properties to the prototype?
<p>I know that a consequence of using the prototype is that all added properties and methods will be public. This is not really too much of a problem since I'm using a naming convention to distinguish between the internals vs. the public interface. So yes, everything is still <em>technically</em> public.</p>

<p>Would it be best to just add <em>all</em> methods and properties to the prototype -- even ones that are intended to be internal -- opposed to only adding <em>public</em> methods/properties to the prototype and dynamically creating the internal properties inside the constructor using <code>this.property = value</code>.?</p>

<p>It seems that since everything is going to be public anyway, we might as well add internal properties to the prototype as well.</p>

<p><strong>I know about using closures to create private scope. My question is not about how to create truly private properties (which would mean ditching the prototype as any of those methods would not have internal access privileges), but about best practice when using the prototype.</strong></p>

<pre><code>function MyObjectA() {
   this.myInternalProp_ = 5;
   // ...
}

MyObjectA.prototype.myPublicProp = "Hello";
</code></pre>

<p>vs.</p>

<pre><code>function MyObjectA() {
   // ...
}

MyObjectA.prototype.myPublicProp = "Hello";
MyObjectA.prototype.myInternalProp_ = 5;
</code></pre>
