2017-08-04 2 views
0

Ich überprüfe mit Alarm, wenn die Variablen sind wie ich will sie zu sein. Das ist wahr, sie sind wie ich will.übergeben Sie ein Argument zu funktionieren, empfangen Ende sagt 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)); 

aber der Empfangscode hat dieses Problem.

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

Ich möchte diesen Code

JA aufmerksam zu machen!

aber warnt:

undefined

wo gehe ich falsch

+0

Es ist keine richtige Weg zur Verwendung von 'setInterval' ... –

+0

Entfernen Sie die Klammern um die zu übergebenden Argumente. – Teemu

+0

'setInterval (Funktion, Millisekunden, Param1, Param2, ...)' –

Antwort

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

Dies ist ein Ausdruck der comma operator verwendet wird, ein Operator, der nie existiert haben sollte ; es entspricht sun. Sie suchen alle Argumente zu setInterval passieren, die wie jede andere Funktion funktioniert:

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

Alternativ können Sie eine Funktion erstellen dailytimer mit den entsprechenden Argumenten aufrufen und übergeben Sie das:

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

Dies hat den Vorteil, in IE9 und früher zu arbeiten, wenn Sie sich für diese Browser interessieren, und möglicherweise einfacher zu lesen.

2

Das Problem ist, dass Sie nur vorbei eine Variable dailytimer:

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

Was Sie tun sollten ist:

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

OR:

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