2

我的教授要求我制作一个简单的 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];

如何将函数附加在一起以写入表?

4

2 回答 2

3

你几乎明白了。正确的语法是:

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

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

记住基本的语法规则:

  1. 不带括号的函数名是函数引用。它的行为就像任何引用一样,因此可以被视为变量。这意味着您可以将其分配给另一个变量,将其传递给另一个函数,然后如上面的示例将其填充到一个数组中。

  2. 将括号添加()到函数引用会导致调用该函数。函数引用是普通的旧函数名还是存储在另一个变量中或存储在数组中都没有关系。

于 2013-03-26T06:19:44.043 回答
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);

显然,您将不得不修改这些以匹配您的确切情况。

于 2013-03-26T06:01:12.310 回答