JS中setTimeout无法调用类成员是怎么回事

2021-01-05 07:12:02 字数 4326 阅读 7770

1楼:老唐

当是使用window.settimeout,或者是使用window.setinterval 时,函数中的this已经不是当前的ok这个了,而是window对象。

你的ok对象里的c函数应该改成如下:

this.c = function(),1000);}

2楼:夏冰

clickonthebuttonabove.analertboxwillbe

displayedafter5seconds.

3楼:龘龑龘龑

var o =new ok();你漏了var吧?

感觉你问的不是这个。应该是为什么最终会显示undefined吧?

settimeout第一参数指的是一句**字符串 而不是 一个对象

4楼:邢富鹏

调用了应该这样写 变量的作用域不应该用this.a 用o.a就正确了

5楼:匿名用户

不要用this 你这里面this用法是错的 直接用局部变量var a, var b就可以了

在js对象的方法里有settimeout函数,在settimeout里怎么调用该对象方法,用this没有用

6楼:穷图末录

settimeout(

function(self)

}(this),1000);

你试试专看属

7楼:匿名用户

把这个对象实例弄成全局变量,settimeout里面用这个变量名代替this就行了

在javascript中在类里用settimeout的一些问题

8楼:匿名用户

这是有bai关於javascript变量作用域du

的问题你能提出这个问题可能时受zhi了eval使用的影响dao

settimeout与eval不一样

eval在运回

行时是改变作用域/this的

而settimeout的作

答用域是window

比如以下**

(function()).call()

你运行下看看

说完上面的

再针对与你现在这个具体的**说明下

settimeout(function(),1000);//d:正确

你在此生成了个匿名函数,在这个函数调用时会逐层的找self这个玩意,由於javascript对作用域的解释,故而能找到你要的self

settimeout('self.count()',1000)

此处给settimeout的是字符串,其作用域是window,故而找不到self

关於javascript的作用域的问题嗯多看些文档加深下理解吧~~

9楼:婪兜

settimeout(code,millisec)中code包含形参bai,

因为settimeout会将code转化成一个dufunction 对象,第

zhi二种方法虽然也能成功封装出

daofunction对象,但是定时器在版self的可见域权外执行code,所以self得不到正确的传递.

js settimeout函数不执行

10楼:阳光上的桥

把下面这段移动到来程序源的最后:

function timeoutshow()function 里面不允许再有function补充:你应该打开浏览器的脚本调试,那样会显示你的语句哪一行有错,是什么错。

现在这样全去猜测是每办法的,比如你$(showid).style.display 这样的语句要执行,也必须要有相应的function定义$函数,或者包含相应的库。

11楼:匿名用户

function 套function settimeout 当然找不到timeoutshow

当然无法执行了,吧里面那个function timeoutshow拿出来就可以

关于javascript中的settimeout()的调用问题,请高手指点!

12楼:匿名用户

恩 发个**copy给你看看 你的我改bai了改第一style.top是个字符串你开始du的值为zhistype.top是"100px"而非100所以要让dao他动就得把他的值改为"100px",而不是100。

再者 你的document.getelementsbytagname["img"];

不是得到的**元素,而是**元素的数组所以我给你加成了id在firefox上面测试有效 你可以把settimeout改为setinterval

13楼:大时代暑

把settimeout(x(),1000);

改为settimeout("x()",1000);

14楼:匿名用户

settimeout(x,1000);

js settimeout()多次调用问题

15楼:匿名用户

题主是说**里面bai用settimeout调用自己吧du?这样的效果跟zhisetinterval是一样的,定时跑一段代dao码,跟递归不回是一样的概念,每次执答行完浏览器就空闲了,等待下一次执行,递归的话是在单次运行的时候无限调用,死循环出不来了,这样浏览器就会卡住,最后提示too much recursion,

楼下说的也不对,不一定要终止的,比如你可以给页面加个时间显示,一秒钟更新一次,可以不用判断停止,页面会无限执行,直到你关闭浏览器。

16楼:淡水千痕乀

肯定会加判断的,举个例子你就明白

varresult=0;

settimeout(add,100);

//result不断自增到10

functionadd()}

javascript settimeout函数不起作用

17楼:匿名用户

由于javascript是解释型语bai言,所以“duvar obj=document.getelementbyid("status")”语句可能在文档加zhi载完dao成前已经执

版行,这时候getelementbyid函数

权会返回null。你可以设置

18楼:匿名用户

但看你写的这两行是在3秒后没有obj这个对象 你最好把你清空的要执行的js写在一个方法里面谈后调用方法settimeout(参数1,参数2)是在参数2的时间里面执行参数1的js,所以你修改一下再试试

19楼:匿名用户

这段**本身是没有问题的,楼主应该是其他的地方有问题

20楼:充艺倪冷萱

不清bai楚,不过一般settimeout("方法()",时间);第一次见直接du写操作的。zhi你可以写个

daofunction

方法,专然后在方法里面做你想属要的操作,在settimeout()里面3秒运行你的方法

希望能对有帮助

js settimeout()在类函数递归调用出错怎么回事?

21楼:匿名用户

解决方法捕获按键的事件。

22楼:匿名用户

我认为主要bai

问题是settimeout对'this.test()'中this的解析出du了问题,举例我刚写zhi的比如dao

function wzen(z)

var wz=document.getelementbyid('sponsorads46554');

if (wz != null)

settimeout("wzen("+z+")",500);

}其中z参数就要分离出来,不回然settimeout会把它答当作字串处理。

javascript settimeout 嵌入for循环不起作用问题

23楼:杀心人

for(vari=0;i<5;i++),i*2000);

})(i);

}functionlist(i)

document.write使用

袭settimeout调用bai可能du会有问zhi题dao

24楼:匿名用户

第一个参数只能是函数且不带参数。你的想法要用闭包做。

js方法中怎么调用另js文件,一个js方法中怎么调用另一个js文件

1楼 育知同创教育 js文件中调用其它js函数的方法 1 例如有这样一个html,里面有一个按钮,当按下时调用b js文件中的方法b 。而b 中又要调用a js文件中的方法a 。那我们应该怎么做呢? 首先,在html中引入b js,并在之后加入引用语句。必须注意,将要引入的js文件 放在下面。 2楼...

ug11无法导入导出文件是怎么回事

1楼 匿名用户 是版本的问题,可以重新安装个版本试试 可以使用《ug一键安装》啊,简单方便,直接帮你装上软件 ug为什么不能导入导出文件 2楼 海边的风 解决方法 选中ug图标,右键 以管理员身份运行,打开ug软件,重新导入 导出即可,参考一下。 3楼 无处安放的上 可以导,可能倒错了吧 4楼 匿名...

用一事无成造句,一事无成怎么造句 一事无成造句大全及是什么意思

1楼 云山雾海 造句 你做事三心二意,将会一事无成。 一事无成怎么造句 一事无成造句大全及是什么意思 2楼 龙之腾必潜乃翔 一事无成 y sh w ch ng 释义 连一样事情都没有做成 。指什么事情都做不成 形容毫无成就。 语出 唐 白居易《除夜寄微之》 鬓毛不觉白毵毵 一事无成百不堪。 正音 成...