У меня есть массив с функциями: var ranArray = [funct1(), funct2()]
и сами функции:Как остановить функции от запуска, пока они не призывается Javascript
function funct1() {
document.write("hello");
};
function funct2() {
document.write("hi");
};
Я пытаюсь сделать так, чтобы каждый раз, когда кнопка нажата, либо funct1 или funct2. Однако, без меня даже нажав кнопку, на странице я вижу свою кнопку и «hellohi». Вот функция рандомизации:
function getFunctions() {
return ranArray[Math.floor(Math.random * ranArray.length)];
};
и вот HTML:
<button type="button" name="ranButton" id="ranButton" onclick="getFunctions();">Random Button</button>
Там нет причин для '.call()' здесь. Вы можете просто использовать 'return ranArray [Math.floor (Math.random() * ranArray.length)]();' – jfriend00
@ jfriend00 Действительно? Я бы не ожидал, что это сработает. Я отредактирую его, спасибо за это. –
Результат индексации в вашем массиве - это ссылка на функцию, поэтому просто добавление '()' на конце вызовет эту функцию. – jfriend00