时间:2021-05-25
最近遇到了一道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);等价于
12下一页阅读全文
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例分析了JavaScript计时器用法。分享给大家供大家参考,具体如下:JavaScript中使用setTimeout和clearTimeout函数进行计
javascript中setTimeout使用指南/*//方法1functionslows(){alert("15S后弹出!");}setTimeout("sl
一般我们插入页码,是从第1页面开始插入的。但是现在第1页面是目录,第2页面开始才是正文,所以我们想要从第2页面开始插入第1页的页码。软件名称:Word2016f
第1种方法: 直接在当前Style文件(*.xaml)文件中使用: 来进行合并 第2种方法: 也是对Style文件进行合并,不过将作用范
1.使用InitParameters属性,动态设置传递参数。2.在SL工程中使用HtmlPage类来直接获取页面参数。下面是利用HtmlPage类来获取参数的代