To dlatego, że obie wartości w twojej macierzy transitions
wskazują ten sam obiekt. Podczas wykonywania twojego kodu tworzysz jeden obiekt, który ma trzy różne odniesienia (transitionInitial
, transistions[0]
, transistions[1]
).
Podczas pierwszej iteracji pętli transistions[0]
ustawia się jako odniesienie do obiektu transitionInitial
. Następnie właściwość property
tego obiektu jest ustawiona na wartość "color"
. Podczas drugiej iteracji transitions[1]
ustawiono odniesienie do tego samego obiektu, co transitionInitial
i transitions[0]
. Następnie zresetuj wartość property
na "background-color"
.
Aby rozwiązać ten problem tworzenia różnych obiektów dla każdego z indeksów tablicy:
// 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);
}