Javascript检查是否在其他文件上创建了函数

Javascript检查是否在其他文件上创建了函数,javascript,Javascript,嘿,我正在创建一个DOM javascript库,发现自己有以下问题: 例如,如果我使用一个函数,比如说function update(),我如何检查该函数是否已在另一个文件上创建;如果它是在另一个文件上创建的,我如何让它运行一次或每隔几秒钟,而用户不需要这样做 例如,在图书馆: && *编辑:试着对我的问题更清楚谢谢你的回答 用户不需要调用setInterval()来重复update(),而是可以自己调用它 function update() { setInterval(functio

嘿,我正在创建一个DOM javascript库,发现自己有以下问题:

例如,如果我使用一个函数,比如说
function update()
,我如何检查该函数是否已在另一个文件上创建;如果它是在另一个文件上创建的,我如何让它运行一次或每隔几秒钟,而用户不需要这样做

例如,在图书馆:

&&


*编辑:试着对我的问题更清楚谢谢你的回答

用户不需要调用
setInterval()
来重复
update()
,而是可以自己调用它

function update() {
    setInterval(function() {
        // do something
    }, 1000);
}
所有需要完成的实际工作都在
//do something
所在的位置。

setTimeout(func,1000)
将在1000毫秒后调用
func

如果您希望立即调用函数,可以执行递归(这种方法不好,最好使用循环,但下面的示例很有用):

现在,您可以使用
setTimeout
并告诉
update
稍后运行

// calls itself infinitely, 1 second delay between calls
function update(){
  setTimeout(update, 1000);
}
这里没有递归。相反,您将对
update()
的调用延迟一秒钟。第二次调用
update()

问题的第二部分:

//call itself once the page is loaded
function start(){
}
您可以在加载页面时将事件侦听器设置为,并调用该函数:

window.addEventListener('load', start);
定义
start()
后立即执行此操作


要反映您的意见:

如果要检测全局函数
update
是否已定义(可能由用户定义),并希望以1秒的相等间隔开始自动调用,则需要使用
typeof
检查其存在性,然后对其应用
setInterval

if(typeof update === "function") {
  setInterval(update, 1000);
}
要明确表示您引用的是全局
update
而不是局部变量,可以改用
window.update
。在这种情况下,您还可以通过以下方式检查它是否存在:

if(update in window)

您可以在函数中无休止地使用
setTimeout
。。但我认为你的问题有可能被关闭,因为它非常模糊。尤其是标题..为什么不使用setInterval?
setInterval
正是为了这个目的。你为什么要避免它?我想创建一个库,每次调用这样的函数时,它都可以自己重复,而不是让用户自己去做@Al.G.@vsync我真的不知道如何要求它对你说实话……第一部分,我的主要意思是,如果用户创建了一个名为“update”的函数,脚本会自动为该函数设置1秒的间隔。第二部分为我提供了start()的解决方案谢谢@Ran编辑了我的答案,为您澄清的问题提供了解决方案。很高兴听到这个消息!下一次,尽量做到清晰明了,以便更快、更积极地回答:)
window.addEventListener('load', start);
if(typeof update === "function") {
  setInterval(update, 1000);
}
if(update in window)