设为首页收藏本站

就爱编程论坛

 找回密码
 注册

人人连接登陆

无需注册,直接登录

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 553|回复: 2
打印 上一主题 下一主题

怎样在js类中使用setTimeout和setInterval? [复制链接]

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2025-5-27 03:37:20
  • 签到天数: 366 天

    [LV.9]以坛为家II

    论坛先锋 学习至圣 荣誉成员 论坛元老 活跃之星 终极领袖

    我玩的应用:

    跳转到指定楼层
    楼主
    发表于 2011-8-15 14:58:52 |只看该作者 |倒序浏览
    1. <script language="javascript">
    2. function text(){
    3. this.aa="aaaa";
    4. this.msg=function(){
    5. alert(this.aa);
    6. }
    7. this.show=function(){
    8. setInterval('msg()',1000);//这里该怎么写?
    9. }
    10. }
    11. var text1=new text;
    12. text1.show();
    13. </script>

    14. 这里的setInterval该怎么写,或者说实现这样功能的程序怎么写?谢谢...^_^

    15. PS:这里要求用js类编写,而不是简单的js..谢谢!问题补充:

    16. <script language="javascript">
    17. function text(){
    18. this.aa="aaaa";
    19. this.aa="adfadf";
    20. this.showMsg=msg;
    21. function msg(){
    22. alert(this.aa);
    23. setTimeout("msg()",1000);//这里出现错误,本人分析应该是找不到msg(),请问在这里怎样访问msg()??
    24. }
    25. }
    26. var text1=new text;
    27. text1.showMsg();
    28. </script>
    29. ===============================================================
    30. <script language="javascript">
    31. function text(){
    32. this.aa="aaaa";
    33. this.aa="adfadf";
    34. window.obj = this;
    35. this.showMsg=msg;
    36. function msg(){
    37. alert(obj.aa);
    38. setTimeout("obj.showMsg()",1000);
    39. }
    40. }
    41. var text1=new text;
    42. text1.showMsg(text1);
    43. </script>
    44. 其实出现这个错误是系统运行setTimeout("msg()",1000); 后,过了一秒钟会执行msg()这一条语句.很明显你没有msg函数,所以出错.解决的方法是调用类的方法而不是直接使用msg(),这样系统会找不到对象.

    45. 但如果将setTimeout("msg()",1000); 写成setTimeout("this.msg()",1000);也会出错.因为执行this.msg()时,系统不会把this当作你初始化的类,而是把它当作window这个对象.很显然,你没有访问到text1.
    46. 为了解决这个问题,我把obj属性加入到windows,obj的值就指向text1,我觉得这一句不错,至少移植性很好.之后就直接用obj访问你的类了.
    复制代码

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 支持支持0 反对反对0 分享到人人 转发到微博
    [img=http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=fRUcHhYWGAQ9GxIFEBwUEVMeEhA]http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_mailme_02.png[/img]

    使用道具 举报

    Rank: 3Rank: 3

    升级 
     
    46.33%

    该用户从未签到

    沙发
    发表于 2011-10-18 01:50:01 |只看该作者

    使用道具 举报

    Rank: 3Rank: 3

    升级 
     
    4.33%

    该用户从未签到

    板凳
    发表于 2011-10-20 20:14:44 |只看该作者

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册 人人连接登陆

    晴云孤魂's Blog|就爱编程搜帖|手机版|Archiver|就爱编程论坛     

    GMT+8, 2025-7-2 18:10 , Processed in 0.098370 second(s), 31 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部