In prototype inheritance program when a property not found in a specified object
<p>All, After reading this <a href="http://stackoverflow.com/questions/816071/prototype-based-vs-class-based-inheritance">post</a>, and did some test based on it .</p>

<pre><code>        function Shape() {
            this.x = 0;
            this.y = 0;
        };

        Shape.prototype.move = function(x, y) {
            this.x += x;
            this.y += y;
            console.log("Shape moved.");
        };

        // Rectangle - subclass
        function Rectangle() {
            //Shape.call(this); //call super constructor.
        };

        Rectangle.prototype = Object.create(Shape.prototype);

        var rect = new Rectangle();
                    alert(rect.x);
</code></pre>

<p>If I commented the code <code>Shape.call(this);</code> in the <code>Rectangle</code>, I found the <code>rect.x</code> is <code>underfined</code> instead of the value <code>0</code>.</p>

<p>And What make me confused is that I found in the best answer of the <a href="http://stackoverflow.com/questions/816071/prototype-based-vs-class-based-inheritance">Post</a> said:</p>

<p><em>"In javascript, every object has a secret link to the object which created it,forming a chain. When an object is asked for a property that it does not have,its parent object is asked... continually up the chain until the property is found or until the root object is reached."</em></p>

<p>So I can't understand why the <code>rect</code> can't found <code>x</code> in the prototype chain. The <code>rect</code> is already inherited form <code>Shape</code>. If the <code>x</code> doesn't exist in the <code>rect</code>, It supposed be found in his parent. right ?
And in my understanding .If using <code>Shape.call(this);</code> , It just add a new <code>x</code> property to the <code>rect</code>, well ,that would not be a code reusing the original <code>x</code> from parents. It just like the override property in the classical inheritance . that is add a new property into the sub class which have the same name and type as the one in the base class..I don't know if my understanding is right , if not . please correct me .Or was I missing something I didn't noticed ? thanks.</p>

<p><strong>Edit</strong></p>

<p>Below is my understanding based on the Thilo and Arun P Johny 's answers. please correct me if it is not right.</p>

<p>Before inheritance happen.</p>

<p><img src="http://i.stack.imgur.com/6IDTI.png" alt="enter image description here"></p>

<p>After inheritance executed.</p>

<p><img src="http://i.stack.imgur.com/y7A0e.png" alt="enter image description here"></p>

<p>So the <code>x</code> only belong to the instance constructed by <code>Shape</code>. thanks</p>
