Es liegt daran, dass beide Werte in Ihrem Array transitions
auf das gleiche Objekt zeigen. Während der Ausführung Ihres Codes erzeugen Sie ein Objekt mit drei verschiedenen Referenzen (transitionInitial
, transistions[0]
, & transistions[1]
).
Während der ersten Iteration der Schleife wird transistions[0]
auf das Objekt transitionInitial
verwiesen. Dann wird die property
Eigenschaft dieses Objekts auf den Wert "color"
festgelegt. Während der zweiten Iteration wird transitions[1]
auf das gleiche Objekt wie transitionInitial
und transitions[0]
festgelegt. Dann setzen Sie den Wert property
auf "background-color"
zurück.
Um dies zu lösen für jedes Ihrer Array-Indizes verschiedene Objekte erstellen:
// Not needed anymore:
// var transitionInitial = {property: "none"};
var rules = ["color", "background-color"];
var transitions = [];
for (var k = 0; k < rules.length; k++) {
transitions[k] = {};
transitions[k].property = rules[k];
alert(transitions[0].property);
}