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

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个参数传入一个匿名函数,在匿名函数中调用你要真正调用的类的方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?