我正在尝试创建一个类似于书籍内容页面的数组。这是我正在尝试的:
var section = [someFunction(pInput.value), anotherFunction(pInput.value), function3(pInput.value)];
var sectionNum = 0;
var playerInput = function () {
var pInput = document.getElementById('input');
section[sectionNum];
};
编辑: 我的函数不会执行,所以当我运行代码时没有任何反应。
总而言之,我想知道我编码是错还是有其他方法可以做到。
感谢您的帮助, 〜网关
答案 0 :(得分:3)
您应该按照以下几行重新构建代码:
var section = [someFunction, anotherFunction, function3];
var sectionNum = 0;
var playerInput = function () {
var pInput = document.getElementById('input');
section[sectionNum](pInput.value);
};
但请确保sectionNum
始终具有合法价值的一些不错的支票。
答案 1 :(得分:1)
section
数组存储每个函数返回的值而不是函数本身。
你可能想做这样的事情:
var section = [someFunction, anotherFunction, function3];
var sectionNum = 0;
var playerInput = function () {
var pInput = document.getElementById('input');
section[sectionNum](pInput.value);
};
答案 2 :(得分:1)
而不是将您的函数放在数组中并尝试根据sectionNum从那里调用它们。你可以使用switch语句;在我看来,它更容易阅读:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
在你的情况下,它会是这样的:
switch (sectionNum) {
case 0:
someFunction(pInput.value)
break;
case 1:
anotherFunction(pInput.value)
break;
case 2:
function3(pInput.value)
break;
default:
alert("I don't know that number")
break;
}
唯一的缺点是你不能像在阵列上那样随时添加更多功能。