Javascript函数在一个数组中

时间:2013-03-26 05:55:37

标签: javascript arrays function random

我的教授负责制作一个简单的Javascript程序,使用随机数显示简单的数学问题及其在二维表中的答案。以前他给了我们一个使用函数写入这样一个表的例子:

function RandomGen() {
Random = math.floor(Math.random()*60);
    document.writeln("<th>");
       document.writeln(Random);
       document.writeln("</th>");
}
RandomGen();

为了使用数组,我可以这样做吗?

var RandomArray [

RandomGen(),
second_function(),
third_function(),
forth_function(),
]

RandomArray[0];

如何将函数一起追加到表中?

2 个答案:

答案 0 :(得分:3)

你几乎得到了它。正确的语法是:

var randomArray = [    
  RandomGen,
  second_function,
  third_function,
  forth_function
];

randomArray[0](); // this calls RandomGen
randomArray[1](); // this calls second_function

请记住基本语法规则:

  1. 没有paranthesis的函数名是函数引用。它的行为与任何引用一样,因此可以视为变量。这意味着您可以将其分配给另一个变量,将其传递给另一个函数,并且如上例所示将其填充到数组中。

  2. 向函数引用添加paranthesis ()会导致调用该函数。函数引用是普通旧函数名称还是存储在另一个变量中或存储在数组中无关紧要。

答案 1 :(得分:1)

您可以将函数存储在变量中,然后将变量放入数组中,然后从数组中访问它们以调用它们。

var add = function(x,y){ return x + y; };
var multiply = function(x,y){ return x * y; };
var maths = [];
maths.push(add);
maths.push(multiply);
maths[0](1,2);//3
maths[1](3,4);//12

相反,您可以使用对象执行此操作。

var maths = {};
maths.add = function(x,y){ return x + y; };
var four = maths.add(1,3);

显然,您必须修改这些以符合您的具体情况。