我试图用另一个函数中的setTimeout()调用一个函数,我一直收到这个错误:
hi is not defined
这是代码。
hello("hi");
function hello(a)
{
hi(a);
function hi(b)
{
console.log(b);
c = setTimeout('hi("' + b + '")', 50)
}
}
正在记录一个"hi"
,但之后它就会停止。我认为问题在于这一部分:c = setTimeout('hi("' + b + '")', 50)
是否有修改而不改变函数结构内的函数?
答案 0 :(得分:2)
您可以将参数作为第三个参数传递给setTimeout。
hello("hi");
function hello(a)
{
hi(a);
function hi(b)
{
console.log(b);
c = setTimeout(hi, 50,b)
}
}
答案 1 :(得分:0)
c = setTimeout( () => hi(b), 50 )
应该有用。
修改(感谢评论中的@evolutionxbox)
c = setTimeout( hi, 50, b )
看起来更好。
您收到此错误:
hi未定义
第4行:hi(a)
执行甚至没有进入超时部分。超时本身不会产生错误,但也不会做任何事情,因为'hi("' + b + '")'
是一个字符串,而不是一个函数。