for (i = 0; i < 4; i++) { var O = document.getElementById(Dis.objItem[i]); //O得到的是网页的下拉框 O.onchange = new Function("Dis.change(" + (i + 1) + ")"); //这是啥意思?? } 等价下面 for (i = 0; i < 4; i++) { var O = document.getElementById(Dis.objItem[i]); //O得到的是网页的下拉框 O.onchange = function () { Dis.change(i + 1); } }
for(i=0;i<4;i++){ var O = document.getElementById(Dis.objItem[i]); //O得到的是网页的下拉框 O.onchange = new Function("Dis.change("+(i+1)+")");//这是啥意思?? }给O循环绑定一个事件,Dis.objItem[i]是一个集合,第一个O改变,触发Dis.change(1)函数,第二个O改变触发Dis.change(2)函数,以此类推,这种写法很不常见。
alert(i);
}function aaas(i){
alert(i);
}var aaaa = new Function("alert(3)");aaa(1);
aaas(2);
aaaa();对比着三种情况,看看。函数的三种定义方式而已
没搞懂这是什么函数
new Function() 创建函数同 new Object() 创建对象一样
var O = document.getElementById(Dis.objItem[i]); //O得到的是网页的下拉框
O.onchange = new Function("Dis.change(" + (i + 1) + ")"); //这是啥意思??
}
等价下面
for (i = 0; i < 4; i++) {
var O = document.getElementById(Dis.objItem[i]); //O得到的是网页的下拉框
O.onchange = function () {
Dis.change(i + 1);
}
}
var O = document.getElementById(Dis.objItem[i]); //O得到的是网页的下拉框
O.onchange = new Function("Dis.change("+(i+1)+")");//这是啥意思??
}给O循环绑定一个事件,Dis.objItem[i]是一个集合,第一个O改变,触发Dis.change(1)函数,第二个O改变触发Dis.change(2)函数,以此类推,这种写法很不常见。
【其实就是给特定的下拉框绑定特定的change事件执行函数罢了】