将一个函数及其参数传递给另一个函数以执行它的语法是什么

What is the syntax to pass a function and it arguments to another function to execute it?

本文关键字:函数 另一个 执行 是什么 语法 一个 参数传递      更新时间:2024-03-23

我有一个foo函数:

var foo = function(input) {
  console.log(input)
}

和一个bar函数:

var bar = function(fn, condition) {
  if (condition) {
    fn();
  }
}

我想传递foo作为bar的自变量,如:bar(foo, true);

问题是执行参数时必须调用foo。如果我使用bar(foo('param'), false);foo将在bar启动之前执行并检查条件。

在JavaScript语法方面有更好的解决方案吗

我知道我可以将bar函数修改为以下内容,但我不想修改bar实现:

var bar = function(fn, fnParam, condition) {
  if (condition) {
    fn(fnParam);
  }
}

您可以使用以下格式:bar(function() { foo(param); },false),除非您需要foo函数中的元信息,如name,在这种情况下,您需要使用function(fn, paramArray, condition)...方法

请注意,使用新的Javascript功能,如Arrow函数,您可以使用bar(()=>foo(param),false)编写相同的内容,但并非所有浏览器都支持这种语法。