2017-08-04 32 views
0

我檢查與警報如果變量是如何我想他們是。這是事實,他們就像我想要的。傳遞函數的參數,接收結束說undefined

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!

,但它提醒:

不確定

我要去哪裏錯了

+0

這不是一個正確的使用'setInterval'的方法... –

+0

刪除要傳遞參數的括號。 – Teemu

+0

'setInterval(function,milliseconds,param1,param2,...)' –

回答

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及更早版本中使用,並且可能更易於閱讀。

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);