在Javascript中在类里用setTimeout的一些问题
发布网友
发布时间:2022-04-22 12:46
我来回答
共2个回答
热心网友
时间:2022-04-22 14:16
这是有关於javascript变量作用域的问题
你能提出这个问题可能时受了eval使用的影响
setTimeout与eval不一样
eval在运行时是改变作用域/this的
而setTimeout的作用域是window
比如以下代码
(function(){console.log(this),eval('console.log(this)'),setTimeout('console.log(this)',0)}).call({Test:!0})
你运行下看看
说完上面的
再针对与你现在这个具体的代码说明下
setTimeout(function(){self.count();},1000); //D:正确
你在此生成了个匿名函数,在这个函数调用时会逐层的找self这个玩意,由於javascript对作用域的解释,故而能找到你要的self
setTimeout('self.count()',1000)
此处给setTimeout的是字符串,其作用域是window,故而找不到self
关於javascript的作用域的问题 嗯 多看些文档加深下理解吧~~
热心网友
时间:2022-04-22 15:34
setTimeout(code,millisec)中code包含形参,
因为setTimeout会将code转化成一个function 对象,第二种方法虽然也能成功封装出function对象,但是定时器在self的可见域外执行code,所以self得不到正确的传递.
在Javascript中在类里用setTimeout的一些问题
setTimeout(function(){self.count();},1000); //D:正确 你在此生成了个匿名函数,在这个函数调用时会逐层的找self这个玩意,由於javascript对作用域的解释,故而能找到你要的self setTimeout('self.count()',1000)此处给setTimeout的是字符串,其作用域是window,故而找不到self 关於javascript的作...
JS中setTimeout()的用法详解
1. setTimeout()基础介绍 setTimeout()是JavaScript中的一个函数,用于在指定延迟后执行一个函数。它的基本语法是: setTimeout(function, delay)。延迟以毫秒为单位,例如3秒就是3000毫秒。2. 示例与功能 2.1 示例:延迟3秒后弹出对话框 在timeout1.htm中,通过setTimeout函数在网页加载3秒后自动...
setTimeout用法
在JavaScript中,setTimeout函数的用法有时可能会引发混淆。让我们来澄清一下:代码`setTimeout('test();', 1000);` 与 `setTimeout("test();", 1000);` 实际上是等效的。这表明在设置定时器时,无论是单引号还是双引号包围字符串,JavaScript解析器都能够正确识别。然而,当你尝试写成这样:`s...
JS中setTimeout和setInterval 实现倒计时如何解决时间偏差的问题
在前端开发中,我们通常利用 `setTimeout` 和 `setInterval` 方法来实现倒计时效果。然而,使用这些方法时,时间偏差问题时常出现。这一现象源自JavaScript程序执行机制,`setTimeout` 和 `setInterval` 的功能在于将回调事件加入事件队列,而非立即执行。事件的执行需等待当前执行栈为空,这段时间差即是...
JAVASCRIPT关于setTimeout不起作用的问题(高手帮个忙,在线等)
setTimeout("test()",1500)更本就不能达到这个函数这样写的效果,因为你的消息都是alert出来的,达不到自动的效果。所以你需要的函数只是要一个参数的,也就是setTimeOut(test())。当你去掉引号的时候,js会认为没有这个方法,而按照只有第一个参数的方法去运行,所以就可以循环了。
js setTimeout的问题
setTimeout(参数1, 参数2);先说参数2,很明了,就是一个时长,单位是秒。再说参数1,当它的类型是function的时候,是一个函数的引用,其意义是多少秒后,执行该函数;当它的类型是字符串时,它将为被内部包装一个成一个类似于下面的匿名函数:function(){evel(参数1);},然后是多少秒后,后...
从setTimeout了解JS函数的执行时机
前置知识JavaScript引擎是单线程的,一段JS代码只能在一个线程从上到下执行。JS内置了一个setTimeout函数,用途是指定某个函数或者某段代码在多少毫秒之后执行。疑问console.log(1)setTimeout(()=>{console.log(2)},1000)console.log(3)有这么一段代码,按照JS是单线程的说法,输出结果应该是1,过...
你真的了解 setTimeout 么?聊聊 setTimeout 的最小延时问题(附源码细 ...
在 JavaScript 中,setTimeout 是不可或缺的工具,它允许你设定代码在一定时间后执行。尽管不是 ECMAScript 标准的一部分,但大多数 JavaScript 环境都支持它。HTML5 标准对setTimeout 的行为有所规定:当嵌套层级超过 5 层且 timeout 小于 4ms 时,会设定一个最小间隔为 4ms。让我们通过实例来...
js setTimeout问题
<SCRIPT LANGUAGE="JavaScript"> <!-- function gettime(){ alert("gg");setTimeout(gettime,1000);} setTimeout(gettime,1000);//--> </SCRIPT> 理解下.
javascript setTimeout的疑问
这个比较简单,你把:setTimeout("m()",10);改成:setTimeout(m(),10);就行了,也就是:<script type="text/javascript"> window.onload = function(){ function m(){ alert("test")setTimeout(m(),10);} m();} </script> 有明白你再HI我好了。