ich ein Array mit Funktionen haben: var ranArray = [funct1(), funct2()]
und die Funktionen selbst:Wie die Ausführung von Funktionen zu stoppen, bis sie auf Javascript aufgerufen werden
function funct1() {
document.write("hello");
};
function funct2() {
document.write("hi");
};
Ich versuche, es zu machen, so dass, wenn eine Taste gedrückt wird, entweder funct1 oder funct2 wird ausgeführt. Aber ohne mich sogar den Knopf zu drücken, auf der Seite sehe ich meinen Knopf und "hallohi". Hier ist die Funktion für die Randomisierung:
function getFunctions() {
return ranArray[Math.floor(Math.random * ranArray.length)];
};
und hier ist die HTML:
<button type="button" name="ranButton" id="ranButton" onclick="getFunctions();">Random Button</button>
Es gibt keinen Grund für '.call()' hier. Sie können einfach 'return ranArray [Math.floor (Math.random() * ranArray.length)]();' – jfriend00
@ jfriend00 Wirklich? Ich hätte das nicht erwartet. Ich werde es bearbeiten, danke dafür. –
Das Ergebnis der Indizierung in Ihr Array ist eine Funktionsreferenz. Wenn Sie also ein '()' am Ende hinzufügen, wird diese Funktionsreferenz aufgerufen. – jfriend00