2 u010400601 u010400601 于 2013.06.10 16:06 提问

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
viscent_huang   2013.09.02 10:01
已采纳

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!