Javascript 当函数是匿名函数时,如何调用其中的函数 var scaleJssor=new Array(); 对于(myloop=0;myloop

Javascript 当函数是匿名函数时,如何调用其中的函数 var scaleJssor=new Array(); 对于(myloop=0;myloop,javascript,Javascript,调用setTimeout内的函数) 否则 你可以用下一个 var myVar; function myFunction() { myVar = setTimeout(alertFunc, 3000); } function alertFunc() { alert("Hello!"); } 这适用于下一个案例 someCode(function funcName() { // here you can access to function with funcName });

调用setTimeout内的函数)

否则

你可以用下一个

var myVar;

function myFunction() {
   myVar = setTimeout(alertFunc, 3000);
}

function alertFunc() {
   alert("Hello!");
}
这适用于下一个案例

someCode(function funcName() {
  // here you can access to function with funcName

});

在这里检查它

尽管这不是一个足够好的代码,因为您在循环中反复定义同一个函数。您应该在循环外定义该函数。我只是回答您有关setTimeout()函数的问题。 如果您将参数传递给函数,下面的代码可能是一件好事

var a = function b() {
  // here your function can be access with a or b
  // but 'b' garantee you that you call current function
  // and 'a' not - cause at code below you can redefine a-value to another one
  // also you can get function by 'b' outside function - it works only inside
}

我认为,如果您在示例中使用上述代码,您无论如何都不需要使用循环。

在循环中定义函数不是一个好的做法。这意味着函数需要在循环的每次迭代中创建。最好在循环外定义它,然后在循环中调用它。我个人发现,我已经开始回避任何函数mous函数。当查看控制台错误时,很高兴看到函数名,并且在源代码中有一些东西可以搜索/跳转到。匿名函数只是调试起来有点困难。@Craicerjack,我需要这个循环,因为我没有定义一个特定的函数,我正在定义一个函数数组。我不是说摆脱它循环。我说的是在循环外定义函数,然后将其推入循环中的数组。这样你就可以定义函数一次,而不是在循环的每次迭代中。是的,我明白了你的意思。谢谢你的解释,谢谢你的回答。所以我知道在某个时候我必须给函数起一个名字来调用它。是吗?Almost-当你——你也可以通过函数外部的“b”来获取函数——它只在函数内部工作——检查这个注释。当你在这样的语法中添加名称时——这个名称只能在函数内部使用——其他代码——不能使用它——实际上我想在函数内部调用相同的函数,这当然是可能的,因为函数有一个名称,就像在你的示例我可以编写myVar=setTimeout(myFunction,3000)。但在我的示例中,它是一个匿名函数。因此我想知道如何获得相同的结果,如何在setTimeout()内传递匿名函数函数。这就是我的问题。好的,
参数。被调用方
是我认为的一个选项。检查此项。请不要使用
参数。被调用方
已弃用。检查我有另一个关于此问题的问题,请您回答我好吗?如果我有一个参数化函数,请说我正在向函数传递一个inetger值并显示该值。so、 在settimeout中,当我调用函数时,如何将参数发送到该函数中。例如:`function myFunction(n){alert(n);settimeout(myFunction,3000);}`现在我想把setTimeout中的一个参数传递到myFunction中。我如何才能做到这一点?这是我查询的完美解决方案。非常感谢,伙计。它达到了我的目的,解决了我所有的其他查询。非常感谢。
someCode(function funcName() {
  // here you can access to function with funcName

});
var a = function b() {
  // here your function can be access with a or b
  // but 'b' garantee you that you call current function
  // and 'a' not - cause at code below you can redefine a-value to another one
  // also you can get function by 'b' outside function - it works only inside
}
function ScaleJssor(k) { 
             var parentWidth = jssor_slider[k].$Elmt.parentNode.clientWidth;

             if (parentWidth)
                {
                    //alert("executing ScaleSlider");
                    jssor_slider[k].$SetScaleWidth(Math.max(Math.min(parentWidth-100, 960), 230));
                }
             else
                    window.setTimeout(function(){ScaleJssor(k)}, 30);

                }