Nic*_*ick 116 javascript arrays function
var array_of_functions = [
first_function('a string'),
second_function('a string'),
third_function('a string'),
forth_function('a string')
]
array_of_functions[0];
Run Code Online (Sandbox Code Playgroud)
这不能按预期工作,因为数组中的每个函数都是在创建数组时执行的.
通过执行以下操作来执行数组中任何函数的正确方法是什么:
array_of_functions[0]; // or, array_of_functions[1] etc.
Run Code Online (Sandbox Code Playgroud)
谢谢!
Dar*_*rov 221
var array_of_functions = [
first_function,
second_function,
third_function,
forth_function
]
Run Code Online (Sandbox Code Playgroud)
然后当你想在数组中执行给定的函数时:
array_of_functions[0]('a string');
Run Code Online (Sandbox Code Playgroud)
小智 101
我认为这是原始海报要完成的目标:
var array_of_functions = [
function() { first_function('a string') },
function() { second_function('a string') },
function() { third_function('a string') },
function() { fourth_function('a string') }
]
for (i = 0; i < array_of_functions.length; i++) {
array_of_functions[i]();
}
Run Code Online (Sandbox Code Playgroud)
希望这将有助于其他人(比如我20分钟前:-)寻找有关如何在数组中调用JS函数的任何提示.
Jef*_*eff 23
如果没有您要完成的更多细节,我们有点猜测.但是你可以通过使用对象表示法来做这样的事情......
var myFuncs = {
firstFunc: function(string) {
// do something
},
secondFunc: function(string) {
// do something
},
thirdFunc: function(string) {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
并打电话给其中一个......
myFuncs.firstFunc('a string')
Run Code Online (Sandbox Code Playgroud)
Rob*_*bin 15
要不就:
var myFuncs = {
firstFun: function(string) {
// do something
},
secondFunc: function(string) {
// do something
},
thirdFunc: function(string) {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
Gus*_*Gus 11
我将通过使用此处最初描述的shift()Javascript方法发布一种更简单的方法来执行Array中的各种函数来补充此线程
var a = function(){ console.log("this is function: a") }
var b = function(){ console.log("this is function: b") }
var c = function(){ console.log("this is function: c") }
var foo = [a,b,c];
while (foo.length){
foo.shift().call();
}
Run Code Online (Sandbox Code Playgroud)
它基本上是相同的,Darin Dimitrov's但它显示了如何使用它来动态创建和存储函数和参数.我希望它对你有用:)
var argsContainer = ['hello', 'you', 'there'];
var functionsContainer = [];
for (var i = 0; i < argsContainer.length; i++) {
var currentArg = argsContainer[i];
functionsContainer.push(function(currentArg){
console.log(currentArg);
});
};
for (var i = 0; i < functionsContainer.length; i++) {
functionsContainer[i](argsContainer[i]);
}Run Code Online (Sandbox Code Playgroud)
在上面我们看到了一些迭代。让我们使用 forEach 做同样的事情:
var funcs = [function () {
console.log(1)
},
function () {
console.log(2)
}
];
funcs.forEach(function (func) {
func(); // outputs 1, then 2
});
//for (i = 0; i < funcs.length; i++) funcs[i]();
Run Code Online (Sandbox Code Playgroud)