问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

在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我好了。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
内蒙古大学满洲里学院奖学金和保障 内蒙古自治区关于工伤保险与人身损害赔偿的规定 关于内蒙古惠蒙保,因为意外伤害发生的住院都可以理赔吗? 飞翔石家庄歌词 飘渺之旅之系列书有哪些 我要想知道飘渺之旅系列的所有书籍. 也就是.飘渺尊者旅2之后的书. 《飘渺神之旅》的续集、书名叫什么名字? 《飘邈之旅》后续到底有哪些啊 飘邈之旅、飘渺神之旅、飘渺尊者、飘渺尊... 飘渺之旅之后该看什么? 猪不吃食。没精神 绿豆鸟属保护动物吗? 小米平板4的爱奇艺怎么用QQ登录 山东东营广饶遇到一鸟,通体绿色,请问是什么鸟? 绿色鸟红嘴图片及名称 小时候夏天树上看见了一只浑身羽毛都是绿色的大体型鸟,和树叶一个颜色没有杂毛,是什么鸟?求解 在路边捡到一只不会飞的绿毛小鸟-是什么鸟? 这是什么鸟绿色的 绿色的鸟跟麻雀一样大 这个绿色小鸟是什么鸟? 的原因用英语怎么说 全身羽毛绿色的鸟是什么鸟? 英文单词“原因”的区别 绿鸟是什么品种?怎么区分公母? 英语用于解释原因的词汇 请问这只绿鸟的名称 原因 英语怎么写 原因如下 英语怎么说 “原因”用英语怎么说? 英文原因怎么说 英语 表示原因 ipadmini52021年还值得入手吗 梦见白胶筐子里的东西着火了? 苹果mini5值得买吗 梦见死去的婆婆我提了一篮子纸给婆婆去烧? 昨天梦见我跟妈妈在外面回家,然后可能是风刮过来一张正在烧的冥币,然后我踩到了,之后立马就发高烧了, 女孩叫邱云哲好吗? 女孩名字中带有峻字的名字 男孩名字中有个哲 女孩名字中有个宇字 膝关节不好的,2个保养膝盖的动作,强化膝关节,远离半月板损伤 EXiT怎么一键还原系统?F12怎么还原系统? 笔记本电脑为什么插上U盘开机时就黑屏呢? 电脑开机黑屏了怎么办 puffin收费吗 帕妥珠单抗的发展历程 从印度买药,靶向帕妥珠(液体)二十瓶,有家人病历,能人肉过海关吗? 乳腺癌her2三个十是晚期吗?能接受靶向药物治疗吗 顾魏吃油条是哪集 怎么做油条呢 自己家里吃油条的做法 爱吃油条,去哪里学习好呢?
  • 焦点

最新推荐

猜你喜欢

热门推荐