我试图将一个函数添加到数组中,然后在以后调用它。
// 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);
}
答案 0 :(得分:5)
当您将函数放入列表中时,您可能不想调用该函数,这是在将test()
添加到数组中时要执行的操作。在创建列表并将结果添加到列表时,这将调用该函数。另外,要在引用它时调用它,您需要包括索引:
function test(){
var test = "test";
console.log(test);
}
// So add it here
var list = [{ Name: "Name1", Name2: "Name", Function: test }] // just add a reference to test no `()`
// Then call it later which will run the function
list[0].Function(); // list is an array so you need to reference the first item
答案 1 :(得分:0)
马克·迈耶(Mark Meyer)的很好回答。我要补充的是,使这成为可能的是Java语言函数是一等成员。没有任何其他对象的区别。
因此,我们甚至可以将属性分配给以下函数:
function foo () {}
foo.bar = 5;
console.log(foo.bar);
这还意味着我们可以将它们存储在这样的数组中:
function foo () {console.log('test')};
let arr = [foo]; //stores a reference of the function foo
arr[0]() // access the reference and execute it
我们可以将引用(要放置在内存中的指针)存储在数组中,以便稍后可以使用()
运算符调用该函数
希望这会进一步澄清它;)
答案 2 :(得分:0)
// 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"]()