Why do I have a shared cache when I `jQuery.extend` two objects with the same caching object?
<p>I can explain the problem best with this simple code snippet:</p>

<pre><code>    var child1 = {name: 'child1'};
    var child2 = {name: 'child2'};

    var parent = {
        _cache: [],  // storage var
        writeCache: function(key, val)
        {
            console.log('writing cache::'+this.name);
            this._cache[key] = val;
        },
        readCache: function(key)
        {
            if(this._cache[key] == undefined)
            {
                return false;
            }
            return this._cache[key];
        },
    };
    jQuery.extend(child1, parent);
    jQuery.extend(child2, parent);

    child1.writeCache('myKey', 123);

    console.log(child1.readCache('myKey'));  // returns 123 as expected

    console.log(child2.readCache('myKey'));  // returns 123 unexpectedly (for me at least)
</code></pre>

<p>See this last line:</p>

<pre><code>    console.log(child2.readCache('myKey'));
</code></pre>

<p>Now why does it return 123 when we've accessed only child1's writeCache()?</p>
