今天写js脚本时碰到了这个问题,js代码在控制台中运行正常,可是放进油猴脚本运行时,却报错函数未定义,经排查,我发现是 我当中有一段 setTimeout(‘a’,1000)的问题,因为setTimeout() 接受一个字符串参数时,它执行于全局作用域,也就是说,它位于任何函数之外,而在写油猴脚本时,是在一个函内定义了函数a,而setTimeout 运行时在全局作用域中找它,所以找不到,而在控制台测试时,函数a定义在全局作用域,所以可以完美运行,用一个匿名函数代替后,问题解决,ps 我是个新手,原因不知道有没有说错
关于js 函数已经定义 报错函数未定义
最新推荐文章于 2024-07-19 22:30:36 发布
本文探讨了在JavaScript中使用setTimeout函数时遇到的作用域问题,特别是在油猴脚本环境中。作者发现,当setTimeout接受字符串参数时,它会在全局作用域中查找函数,这导致在局部作用域中定义的函数无法被找到。通过改用匿名函数,问题得以解决。
411

被折叠的 条评论
为什么被折叠?



