OOP prototype.method call this.method
<pre><code>var fn = function() {


    this.method1 = function() {

        return this.public;
    };


    this.method2 = function() {

        return {

            init: function() { return this.public; }
        }
    };


    fn.prototype.public = "method prototype";
};
</code></pre>

<p>create object fn </p>

<pre><code>var object = new fn();

object.method1() // "method prototype"

object.method2().init(); // undefined 
</code></pre>

<p>this.public Prototype in  method2().init() function run return undefined ?</p>

<p>Is there an alternative to Prototype?
thank you.</p>
