传递一个参数到函数,接收结束说undefined

时间:2017-08-04 21:58:11

标签: javascript

如果变量与我想要的一样,我会提醒我。这是真的,他们就像我想要的那样。

var fri = "YES"     //mon til sun are defined but for readibilty I didnt post them all strings
alert(mon + tue + wed + thu + fri + sat + sun)
setInterval(dailytimer, 999, (mon,tue,wed,thu,fri,sat,sun));

但收到的代码有这个问题。

function dailytimer (mon,tue,wed,thu,fri,sat,sun){
  alert (fri);}

我希望此代码提醒

  

YES!

但它警告:

  

未定义

我哪里出错

2 个答案:

答案 0 :(得分:4)

(mon,tue,wed,thu,fri,sat,sun)

这是一个使用comma operator的表达式,这是一个本来就不存在的运算符;它相当于sun。您希望将所有参数传递给setInterval,这与任何其他函数一样:

setInterval(dailytimer, 999, mon, tue, wed, thu, fri, sat, sun);

或者,您可以创建一个函数来使用适当的参数调用dailytimer并传递:

setInterval(function () {
    dailytimer(mon, tue, wed, thu, fri, sat, sun);
}, 999);

如果您关心这些浏览器,那么它具有在IE9及更早版本中工作的优势,并且可能更容易阅读。

答案 1 :(得分:2)

问题是您只将一个变量传递给dailytimer

setInterval(dailytimer, 999, (mon,tue,wed,thu,fri,sat,sun));

你应该做的是:

setInterval(dailytimer, 999, mon, tue, wed, thu, fri, sat, sun);

OR:

setInterval(function(){ dailytimer(mon, tue, wed, thu, fri, sat, sun); }, 999);