Javascript 将函数传递到数组中,然后调用它

Javascript 将函数传递到数组中,然后调用它,javascript,Javascript,我试图将一个函数添加到数组中,然后稍后调用它 // So add it here var list = [{ Name: "Name1", Name2: "Name", Function: test() }] // Then call it later which will run the function list.Function; function test(){ var test = "test"; console.log(test); } 在将函数放入列表时,您可

我试图将一个函数添加到数组中,然后稍后调用它

// So add it here
var list = [{ Name: "Name1", Name2: "Name", Function: test() }]

// Then call it later which will run the function
list.Function;

function test(){
    var test = "test";
    console.log(test);
}

在将函数放入列表时,您可能不想调用该函数,这是在向数组中添加
test()
时所做的操作。这将在创建列表并将结果添加到列表时调用函数。此外,要在引用时调用它,需要包含索引:

功能测试(){
var test=“test”;
控制台日志(测试);
}
//所以把它加在这里
var list=[{Name:“Name1”,Name2:“Name”,Function:test}]//只需添加对test no`()`
//然后稍后调用它,它将运行该函数

列表[0]。函数();//列表是一个数组,因此您需要引用第一项
Mark Meyer的精彩答案。我想补充的是,让这成为可能的是Javascript函数中的第一类成员。它们与任何其他对象都没有区别

因此,我们甚至可以将属性指定给如下函数:

函数foo(){}
foo.bar=5;

控制台日志(foo.bar)将函数
测试的结果存储到数组中。您没有存储函数本身。该函数返回
未定义的
// First Method/Function
function messageOne()
{
  console.log("Inside First Method !")
}
// Second Method/Function
function messageTwo()
{
  console.log("Inside Second Method !")
}

// A List which stores methods reference
var list = {"one":messageOne,"two":messageTwo}

// Call Each methods/Function from list
list["one"]()
list["two"]()