Betrachten Sie diesen Beispielcode:
a={};
a['herp']=['derp'];
var b = jQuery.extend({}, a);
b['herp'].push('foo');
alert(a['herp']); //this produces message box with "derp,foo"
Ich gehe davon aus, dass var b = jQuery.extend({}, a);
klont ein Objekt (als erwähnt von John Resig), d.h. es wird ein neues Objekt mit denselben Eigenschaften wie das vorherige erstellt. Wenn dies richtig ist, warum wird dann b['herp'].push('foo');
ändern. a
wie angegeben durch alert(a['herp']);
?
jsFiddle-Beispiel: http://jsfiddle.net/M48tr/