http://jsfiddle.net/gfuKS/5/

var transitionInitial = {property: "none"};
var rules = ["color", "background-color"];
var transitions = [];
for ( var k = 0; k < rules.length; k++)
{
    transitions[k] = transitionInitial;
    transitions[k].property = rules[k];
    alert(transitions[0].property);
}​

为什么在第二次迭代中transitions [0] .property等于“background-color”?

最佳答案

因为您存储的是对transitionInitial的引用,而不是其副本。 transitionInitial指向内存中的对象,并且您正在transitions[k]中存储对该对象的引用。无论您处于何种迭代状态,都始终在更改同一对象。

09-25 19:59