<script type="text/javascript">
function news(strid,strfid,strname){
this.id = strid;
this.fid = strfid ;
this.name = strname ;
return this ;
}var news_array = new Array();for (i = 0; i < 10; i++)
{
news_array[i] = news(i,'0','honglonglong'+i);
}//alert(news_array.length);for (i = 0; i < news_array.length; i++)
{
var s =news_array[i]
document.write(i+' '+s.id+' '+s.fid+' '+s.name +'<br>');
}
</script>结果为:
0 9 0 honglonglong9
1 9 0 honglonglong9
2 9 0 honglonglong9
3 9 0 honglonglong9
4 9 0 honglonglong9
5 9 0 honglonglong9
6 9 0 honglonglong9
7 9 0 honglonglong9
8 9 0 honglonglong9
9 9 0 honglonglong9按理说,s.id存进去的应该是i,怎么会全是9呢?一个奇怪的问题,请高人和大虾帮忙看看
function news(strid,strfid,strname){
this.id = strid;
this.fid = strfid ;
this.name = strname ;
return this ;
}var news_array = new Array();for (i = 0; i < 10; i++)
{
news_array[i] = news(i,'0','honglonglong'+i);
}//alert(news_array.length);for (i = 0; i < news_array.length; i++)
{
var s =news_array[i]
document.write(i+' '+s.id+' '+s.fid+' '+s.name +'<br>');
}
</script>结果为:
0 9 0 honglonglong9
1 9 0 honglonglong9
2 9 0 honglonglong9
3 9 0 honglonglong9
4 9 0 honglonglong9
5 9 0 honglonglong9
6 9 0 honglonglong9
7 9 0 honglonglong9
8 9 0 honglonglong9
9 9 0 honglonglong9按理说,s.id存进去的应该是i,怎么会全是9呢?一个奇怪的问题,请高人和大虾帮忙看看
this.id = strid;
this.fid = strfid ;
this.name = strname ;
return this ;
}这里的this是window对象 后面的把前面的覆盖掉了
for (i = 0; i < 10; i++)
{
news_array[i] = new news(i,'0','honglonglong'+i);
}
这样就可以了
function news(strid,strfid,strname){
this.id = strid;
this.fid = strfid ;
this.name = strname ;
//return this ;
}var news_array = new Array();for (i = 0; i < 10; i++)
{
news_array[i] = new news(i,'0','honglonglong'+i);
}//alert(news_array.length);for (i = 0; i < news_array.length; i++)
{
var s =news_array[i]
document.write(i+' '+s.id+' '+s.fid+' '+s.name +'<br>');
}
</script>
当new news的时候就生成的一个新的对象,而此时this就指向这个新的对象。
不知道这样理解对不对。。
相互学习。