js将两个函数传递给一个方法

时间:2012-06-27 13:07:50

标签: javascript syntax

将两个或多个函数传递给方法的正确语法是

setInterval("javascript function",milliseconds); 以下是正确的吗?

setInterval("pushmarkers();clearOverlays();loadmarkers();",5000);

3 个答案:

答案 0 :(得分:4)

将它们包裹在另一个功能中:

setInterval(function() {
  pushmarkers();
  clearOverlays();
  loadmarkers();
}, 5000);

答案 1 :(得分:2)

你不应该将字符串传递给setInterval,这会使用eval(这是邪恶的)。

您可以传递匿名函数:

setInterval(function () {
    pushmarkers();
    clearOverlays();
    loadmarkers();
}, 5000);

或命名函数:

var functionForSetInterval = function () {
    pushmarkers();
    clearOverlays();
    loadmarkers();
};

setInterval(functionForSetInterval, 5000);

答案 2 :(得分:1)

这两种做法都不是很好,因为你提供的是setInterval字符串,而不是函数的引用。

你需要给setInterval一个函数,你可以轻松地创建一个调用其他函数的函数(将它们包装在函数中):

setInterval(function(){ pushmarkers(); clearOverlays(); loadmarkers(); }, 5000);

function multifunction(){
    pushmarkers();
    clearOverlays();
    loadmarkers();
}

setInterval(multifunction, 5000);