如何解决'对象#<对象>的types错误:属性'_onTimeout'不是节点中的函数?
以下代码片断:
var theAdNets = new Array(); function populateAdNetList() { } //update the list every 5 minutes. setInterval("populateAdNetList()",300000); //fetch it in 5 seconds. setTimeout("populateAdNetList();",5000);
产生以下错误:
TypeError: Property '_onTimeout' of object #<Object> is not a function at Timer.callback (timers.js:83:39)
populateAdNetList()是一个函数,而不是一个对象。 函数(){}的主体中没有引用“this”。 为什么会这样呢?
这很可能是一个范围问题。 如果函数是在函数或对象的本地定义的,那么在全局范围中将不可用string进行评估。
将函数移到全局范围,或者在调用中使用函数引用,以避免范围问题:
//update the list every 5 minutes. setInterval(populateAdNetList,300000); //fetch it in 5 seconds. setTimeout(populateAdNetList,5000);
您必须将函数传递给setInterval
。 不是string,也不是函数的结果(直到它也是一个函数)。 正确的语法:
setInterval(populateAdNetList, 300000); setTimeout(populateAdNetList, 5000);
尝试简单
setInterval(populateAdNetList,300000); //fetch it in 5 seconds. setTimeout(populateAdNetList,5000);