Javascript 运行存储在数组中的函数
我正在将一些函数推送到数组中,但我不确定在循环数组时如何运行这些函数 我正在尝试将Javascript 运行存储在数组中的函数,javascript,arrays,Javascript,Arrays,我正在将一些函数推送到数组中,但我不确定在循环数组时如何运行这些函数 我正在尝试将红色黄色绿色输出到控制台 下面是我的JavaScript的一个小提琴: 以下是我目前掌握的代码: var myArr = []; myArr.push( logItRunner('red') ); myArr.push( logItRunner('yellow') ); myArr.push( logItRunner('green') ); console.log(myArr); //Function to
红色
黄色
绿色
输出到控制台
下面是我的JavaScript的一个小提琴:
以下是我目前掌握的代码:
var myArr = [];
myArr.push( logItRunner('red') );
myArr.push( logItRunner('yellow') );
myArr.push( logItRunner('green') );
console.log(myArr);
//Function to be stored in array. Should return the logIt function.
function logItRunner( arg ) {
return function() {
logIt( arg );
};
}
//Function to log a string to the console
function logIt (color) {
console.log(color);
};
//Function to loop through array and fire functions within the array
function runIt () {
for (var i = 0, len = myArr.length; i < len; i++) {
//Fire Function within Array at position i and log the argument to the console.
myArr[i];
};
};
runIt();
var myArr=[];
myArr.push(logItRunner(“红色”));
myArr.push(logItRunner('yellow'));
myArr.push(logItRunner(“绿色”));
console.log(myArr);
//要存储在数组中的函数。应该返回logIt函数。
函数logItRunner(arg){
返回函数(){
罗吉特(arg);
};
}
//函数将字符串记录到控制台
函数逻辑(颜色){
控制台。日志(颜色);
};
//函数在阵列中循环,并在阵列中激发函数
函数runIt(){
对于(变量i=0,len=myArr.length;i
myArr[i]
是一个函数引用。使用()
,调用它引用的函数,就像调用函数引用时一样:
在循环中,更改:
myArr[i];
到
myArr[i]
是一个函数引用。使用()
,调用它引用的函数,就像调用函数引用时一样:
在循环中,更改:
myArr[i];
到
看看我是如何执行myArri的下面 你差一点就搞定了,只是忘了()
//循环数组的函数,并在数组中激发函数
函数runIt(){
对于(变量i=0,len=myArr.length;i
查看我如何执行myArri下面
你差一点就搞定了,只是忘了()
//循环数组的函数,并在数组中激发函数
函数runIt(){
对于(变量i=0,len=myArr.length;i
这是关于JavaScript闭包是如何工作的,这通常是我们教授JavaScript闭包的方式,因此您的示例很好,因为它澄清了这个概念
这是我通常教授JavaScript闭包的方法,与您的方法完全相似,但有一些小的区别:
var myArr = [];
myArr.push('red');
myArr.push('yellow');
myArr.push('green');
var funcArr=[];
function pushIt () {
for (var i = 0, len = myArr.length; i < len; i++) {
var func = (function(color){
return (function(){
console.log(color);
});
})(myArr[i]);
funcArr.push(func);
};
};
function runIt () {
for (var i = 0, len = funcArr.length; i < len; i++) {
funcArr[i]();
};
};
pushIt();
runIt();
var myArr=[];
myArr.push(“红色”);
myArr.push(“黄色”);
myArr.push(“绿色”);
var funcArr=[];
函数pushIt(){
对于(变量i=0,len=myArr.length;i
这是关于JavaScript闭包是如何工作的,这通常是我们教授JavaScript闭包的方式,因此您的示例很好,因为它澄清了这个概念
这是我通常教授JavaScript闭包的方法,与您的方法完全相似,但有一些小的区别:
var myArr = [];
myArr.push('red');
myArr.push('yellow');
myArr.push('green');
var funcArr=[];
function pushIt () {
for (var i = 0, len = myArr.length; i < len; i++) {
var func = (function(color){
return (function(){
console.log(color);
});
})(myArr[i]);
funcArr.push(func);
};
};
function runIt () {
for (var i = 0, len = funcArr.length; i < len; i++) {
funcArr[i]();
};
};
pushIt();
runIt();
var myArr=[];
myArr.push(“红色”);
myArr.push(“黄色”);
myArr.push(“绿色”);
var funcArr=[];
函数pushIt(){
对于(变量i=0,len=myArr.length;i
谢谢!这可能看起来很愚蠢,但我不太熟悉使用数组,这就是为什么我尝试将函数推入数组的原因。阵列中的函数作为[函数,函数,函数]
记录到控制台是否正常?我试图将其记录为函数名。再次感谢T.J@我很乐意帮忙。您的函数没有名称,您正在使用以下匿名函数表达式创建它们:function(){logIt(arg);}
。根据您使用的浏览器,如果它们确实有名称,则在转储到控制台时,您可能会看到它们,也可能看不到它们。非常感谢您的解释:)谢谢!这可能看起来很愚蠢,但我不太熟悉使用数组,这就是为什么我尝试将函数推入数组的原因。阵列中的函数作为[函数,函数,函数]
记录到控制台是否正常?我试图将其记录为函数名。再次感谢T.J@我很乐意帮忙。您的函数没有名称,您正在使用以下匿名函数表达式创建它们:function(){logIt(arg);}
。根据您使用的浏览器,如果它们确实有名称,则在转储到控制台时,您可能会看到它们,也可能看不到它们。非常感谢您的解释:)谢谢您的快速回复!谢谢你的快速回复!