手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >在Javascript类中使用setTimeout第1/2页
在Javascript类中使用setTimeout第1/2页
摘要:最近遇到了一道Javascript考题,内容如下:尝试实现注释部分的Javascript代码,可在其他任何地方添加更多代码(如不能实现,说明...

最近遇到了一道Javascript考题,内容如下:

尝试实现注释部分的Javascript代码,可在其他任何地方添加更多

代码(如不能实现,说明一下不能实现的原因):

varObj=function(msg){

this.msg=msg;

this.shout=function(){

alert(this.msg);

}

this.waitAndShout=function(){

//隔五秒钟后执行上面的shout方法

}

}

vartestObj=newObj("Hello,World!");

testObj.shout();坦白的说,之前我并没有在Javascript类中使用setTimeout/setInterval的经验,所以开始就很草率的认为这是无法实现的。但是经过深思熟虑以后发现是可以实现的。退一步说,隔五秒执行某段语句是非常容易实现的。比如不考虑别的因素,题目中的函数是可以这样写:

this.waitAndShout=function(){

setTimeout('this.shout()',5000);

}在运行以后,谁都会意识到this这个变量是无法找到的。但是这是为什么呢,很快就可以意识到,其实setTimeout/setInterval是window对象的一个方法,所以也可以写成window.setTimeout/window.setInterval,那么上述的this.shout()就非常可以容易理解为什么不能执行了,因为它实际上调用的是window.shout()。

知道了原因以后解决起来就非常的容易了,只要将对象绑定到window对象下就可以(我对Javascript有趣的对象机制感到兴奋)。那么,上述的函数再做一个小的修改:

this.waitAndShout=function(){

window.Obj=this;

setTimeout('Obj.shout()',5000);

}这样就可以了。实际上

setTimeout('Obj.shout()',5000);等价于

当前1/2页12下一页阅读全文

【在Javascript类中使用setTimeout第1/2页】相关文章:

简介JavaScript中charAt()方法的使用

在JavaScript的正则表达式中使用exec()方法

在JavaScript中使用开平方根的sqrt()方法

JavaScipt中Function()函数的使用教程

JavaScript中的Math.LOG2E属性使用详解

在JavaScript中处理字符串之link()方法的使用

javascript下使用Promise封装FileReader

JavaScript中的blink()方法的使用

JavaScript中使用Math.PI圆周率属性的方法

JavaScript中的parse()方法使用简介

精品推荐
分类导航