Javascript JSHTML:从数组调用随机函数

Javascript JSHTML:从数组调用随机函数,javascript,html,Javascript,Html,我试图调用一个从数组中随机获得的函数。以下是链接: 现在我有以下代码: JS HTML 查阅 我想知道的是,一旦得到了随机项,该如何称呼它。 我试过eval(),window[](),甚至rand()。 有人能帮我吗?您需要在数组中只存储函数引用(没有()),然后使用rand()调用返回的函数 函数na(){ log('na()已调用'); 返回“na” } 函数na2(){ log('na2()已调用'); 返回'na2' } 函数na3(){ log('na3()已调用'); 返回'n

我试图调用一个从数组中随机获得的函数。以下是链接:

现在我有以下代码: JS

HTML


查阅
我想知道的是,一旦得到了随机项,该如何称呼它。 我试过
eval()
window[]()
,甚至
rand()

有人能帮我吗?

您需要在数组中只存储函数引用(没有
()
),然后使用
rand()
调用返回的函数

函数na(){
log('na()已调用');
返回“na”
}
函数na2(){
log('na2()已调用');
返回'na2'
}
函数na3(){
log('na3()已调用');
返回'na3'
}
//函数引用数组
var randoRandit=[na,na2,na3];
var rand=randoRandit[Math.floor(Math.random()*randoRandit.length)];
//现在调用函数
var result=rand();
document.querySelector('div')。textContent=result

您只需要在数组中存储函数引用(没有
()
),然后使用
rand()
调用返回的函数

函数na(){
log('na()已调用');
返回“na”
}
函数na2(){
log('na2()已调用');
返回'na2'
}
函数na3(){
log('na3()已调用');
返回'na3'
}
//函数引用数组
var randoRandit=[na,na2,na3];
var rand=randoRandit[Math.floor(Math.random()*randoRandit.length)];
//现在调用函数
var result=rand();
document.querySelector('div')。textContent=result

首先,您必须考虑到,每次编写一个标识符,后跟一个括号内的参数列表(即使它是空的),您都是在调用一个函数

因此,在这方面:

var randoRandit = [na(), na2(), na3(), na4()];
。。。调用四个函数,然后将返回的值作为项存储到数组中。这是你真正想要的吗?我想没有

如果要引用函数而不实际调用它,只需写下其名称(不带括号):


首先,您必须考虑到,每次编写一个标识符,后跟一个括号内的参数列表(即使是空的),您都是在调用一个函数

因此,在这方面:

var randoRandit = [na(), na2(), na3(), na4()];
。。。调用四个函数,然后将返回的值作为项存储到数组中。这是你真正想要的吗?我想没有

如果要引用函数而不实际调用它,只需写下其名称(不带括号):


现代JS基础:不要使用HTML属性触发JS。在JS中,添加
yourbtnid.addEventListener(“单击”,evt=>getValue(evt)),以及现代HTML基础:不要在
id
属性中打问号。无论教你HTML和Js的是什么,都是一本糟糕的教程/网站/书籍,即使是为了你自己的技能/理智,你也希望通过查阅一些适当的现代教程(例如,去年专门针对HTML5和ES6编写的,但理想情况下是ES2020)来重温现代Js和HTML@Mike'Pomax'Kamermans,因为addEventListener更好,所以我没有被教在HTML中做onclick。我不使用addEventListener的原因在我的《后现代JS基础》中有说明:不要使用HTML属性来触发JS。在JS中,添加
yourbtnid.addEventListener(“单击”,evt=>getValue(evt)),以及现代HTML基础:不要在
id
属性中打问号。无论教你HTML和Js的是什么,都是一本糟糕的教程/网站/书籍,即使是为了你自己的技能/理智,你也希望通过查阅一些适当的现代教程(例如,去年专门针对HTML5和ES6编写的,但理想情况下是ES2020)来重温现代Js和HTML@Mike'Pomax'Kamermans,因为addEventListener更好,所以我没有被教在HTML中做onclick。我不使用addEventListener的原因在我的帖子中有说明
var randoRandit = [na(), na2(), na3(), na4()];
// Declaration:
function myFunction() {...}

// Referenciation:
var f=myFunction;
// Now f acts as a reference to your real function.

// Calling:
f(...)