就爱编程论坛

标题: 怎样在js类中使用setTimeout和setInterval? [打印本页]

作者: admin    时间: 2011-8-15 14:58:52     标题: 怎样在js类中使用setTimeout和setInterval?

  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访问你的类了.
复制代码


作者: ABC_84    时间: 2011-10-18 01:50:01

ding呀 支持












龙南诛仙GM 台前热血江湖一条龙 衡南魔力宝贝sf 建德传奇世界sf 承德惊天动地私服 济宁天龙八部私服 库伦旗sf网 福鼎魔兽世界私服
凌源热血传奇GM 贵池我本沉默

作者: 语言教授    时间: 2011-10-20 20:14:44

不错的。谢谢喽












松江热血江湖私服 蒙山热血传奇私服
北碚传奇世界sf 泗县诛仙外挂
北门天龙八部论坛 康保劲舞团服务端 关岭征途 罗甸永恒之塔一条龙
吉木乃完美sf 栖霞英雄合击





欢迎光临 就爱编程论坛 (http://bbs.waibc.com/) Powered by Discuz! X2