これは、transitions
配列の両方の値が同じオブジェクトを指しているためです。コードの実行中に、3つの異なる参照(、、、および)を持つ1つのオブジェクトを生成transitionInitial
しtransistions[0]
ますtransistions[1]
。
ループの最初の反復中に、はオブジェクトtransistions[0]
を参照するように設定されtransitionInitial
ます。次に、property
そのオブジェクトのプロパティが値に設定されます"color"
。2回目の反復では、およびとtransitions[1]
同じオブジェクトを参照するように設定されます。次に、の値をにリセットします。transitionInitial
transitions[0]
property
"background-color"
これを解決するには、配列インデックスごとに異なるオブジェクトを作成します。
// 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);
}