var i=0;
var fu = function(){
alert("ok");
}
fu.aa = 3;
for(var j in fu){
++i;
}
alert(i);
这时候i的值是1.如果
var i=0;
var fu = {a:1,b:2}
fu.aa = 3;
for(var j in fu){
++i;
}
alert(i);
将fu变为对象里,i的值是3,也就是fu.aa算进去fu了,为什么会出现这种区别?
var fu = function(){
alert("ok");
}
fu.aa = 3;
for(var j in fu){
++i;
}
alert(i);
这时候i的值是1.如果
var i=0;
var fu = {a:1,b:2}
fu.aa = 3;
for(var j in fu){
++i;
}
alert(i);
将fu变为对象里,i的值是3,也就是fu.aa算进去fu了,为什么会出现这种区别?
第一个fu.aa是静态属性 遍历时i+1 第二个fu.aa fu对象里面没有aa属性,所以动态的添加,并赋值 遍历时 fu里面有a b aa三个属性
2. for-in 语句:for-in 语句是严格的迭代语句,用于枚举对象的属性。var i=0;
var fu = function(){
alert("ok");
}
fu.aa = 3;//为函数对象fu添加了一个属性aa,值为3
for(var j in fu){//迭代对象fu的属性(这里fu对象有一个属性,即上面的aa)
++i;
}
alert(i);
var i=0;
var fu = {a:1,b:2}//定义对象fu,有两个属性,分别为a=1,b=2
fu.aa = 3;//再为对象fu添加一个属性aa,值为3
for(var j in fu){//迭代对象fu的属性,a b aa三个
++i;
}
alert(i);