苍穹之帆
2013-06-10 08:06
采纳率: 50%
浏览 2.2k

JavaScript中,如何在setTimeout函数中调用一个class中的函数

function create_plant(name,position_first,position_second)
{
this.name=name;
this.position_first=position_first;
this.position_second=position_second;
this.plant=function(a){
if((test==0)&&(this.name))
{
choose="";
test+=1;
var b=document.createElement("img");
var plant_name="img/plant_gif/"+this.name+".gif";
b.setAttribute("src", plant_name);
a.appendChild(b);
this.wait_for_time();
test=test-1;

}
}
this.wait_for_time=function(){
can_move=0;
var picture=this.name+"_gif";
document.getElementById(picture).style.display="none";
setTimeout("this.time_out()", 3*1000);
}
this.time_out=function(){
var old_picture=document.getElementById(this.name);
old_picture.src="img/plant/"+this.name+".png";

}
}
如上,我想在这个class中的wait_for_time函数中调用setTimeout,希望能够在3秒钟后调用这个class中的time_out方法,可是用this.time_out没法令time_out执行,求能够调用time_out的解决方法

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • viscent_huang 2013-09-02 02:01
    已采纳

    setTimeout调用时第1个参数传入一个匿名函数,在匿名函数中调用你要真正调用的类的方法。

    点赞 评论