- 注册时间
- 2010-11-11
- 最后登录
- 2025-5-27
- 阅读权限
- 200
- 积分
- 14361
- 精华
- 2
- 帖子
- 843
  

TA的每日心情 | 无聊 2025-5-27 03:37:20 |
---|
签到天数: 366 天 [LV.9]以坛为家II
我玩的应用:
  
|
- <script language="javascript">
- function text(){
- this.aa="aaaa";
- this.msg=function(){
- alert(this.aa);
- }
- this.show=function(){
- setInterval('msg()',1000);//这里该怎么写?
- }
- }
- var text1=new text;
- text1.show();
- </script>
- 这里的setInterval该怎么写,或者说实现这样功能的程序怎么写?谢谢...^_^
- PS:这里要求用js类编写,而不是简单的js..谢谢!问题补充:
- <script language="javascript">
- function text(){
- this.aa="aaaa";
- this.aa="adfadf";
- this.showMsg=msg;
- function msg(){
- alert(this.aa);
- setTimeout("msg()",1000);//这里出现错误,本人分析应该是找不到msg(),请问在这里怎样访问msg()??
- }
- }
- var text1=new text;
- text1.showMsg();
- </script>
- ===============================================================
- <script language="javascript">
- function text(){
- this.aa="aaaa";
- this.aa="adfadf";
- window.obj = this;
- this.showMsg=msg;
- function msg(){
- alert(obj.aa);
- setTimeout("obj.showMsg()",1000);
- }
- }
- var text1=new text;
- text1.showMsg(text1);
- </script>
- 其实出现这个错误是系统运行setTimeout("msg()",1000); 后,过了一秒钟会执行msg()这一条语句.很明显你没有msg函数,所以出错.解决的方法是调用类的方法而不是直接使用msg(),这样系统会找不到对象.
- 但如果将setTimeout("msg()",1000); 写成setTimeout("this.msg()",1000);也会出错.因为执行this.msg()时,系统不会把this当作你初始化的类,而是把它当作window这个对象.很显然,你没有访问到text1.
- 为了解决这个问题,我把obj属性加入到windows,obj的值就指向text1,我觉得这一句不错,至少移植性很好.之后就直接用obj访问你的类了.
复制代码
|
|