var data = { first: { value: 1 }, second: { value: 2} };
for (var cl in data) {
var im = data[cl];
im = 0;
}
for (var cl in data) {
var im = data[cl];
im.value = 10;
}
for (var cl in data) {
var im = data[cl];
im = 0;
}
for (var cl in data) {
var im = data[cl];
im.value = 10;
}
第一个for循环,修改im,data不变,
第二个for循环,修改im,data变了。
然后怀疑是不是因为在这里面不可以改变im的类型。后来在群里一位js大牛向我解释了一下,一语点醒梦中人纳!
for (var cl in data) {
var im = data[cl]; // 把这个人给我叫来
im = 0; // 换个人
alert(data[c].value); // 最开始的那个人有变化吗?
}
for (var cl in data) {
var im = data[cl]; // 把这个人给我叫来
im.value = 10; // 给这货一拳
alert(data[cl].value); // 这人身上有伤痕吗
}