【问题标题】:Javascript: How to pass functions as parameters?Javascript:如何将函数作为参数传递?
【发布时间】:2020-07-20 00:06:03
【问题描述】:

Javascript:如何将函数作为参数传递?

代码应该成功运行传递给循环函数的函数值。

任何帮助将不胜感激。

  function loop(value, test, update, body){
    for (let i = 0; i < 10; i++){
      if (test(i, value)) break;
      update(value);
      console.log(body(i));
    }
  }

  loop(5, (i, value) => { return i > value }, (value) => {return value + 1}, (i) => {return i*2;});

【问题讨论】:

  • 这能回答你的问题吗? What is the scope of variables in JavaScript?
  • 使用“test(i, value)”更新函数以接受这样的:“loop(5, (i, v) => i > v, .. )” — 请注意,“value”(“循环”函数的参数)和“v”(提供的匿名函数的参数)在 不同的范围中,因此为了便于说明而更改了名称。
  • 给所有的变量唯一的名字。将事物称为“i”和“value”在这里会造成混淆。您没有将正确数量的参数传递给“test”、“update”或“body”。
  • @65535 他们在我的,也许在大多数其他人的。
  • @65535 我怎么知道错误?您删除了可运行的 sn-p。

标签: javascript function loops


【解决方案1】:

解决方案:

此解决方案与问题中的代码没有区别,因为原始问题是出于某些目的而编辑的。但是,问题的最初原因是函数值的必要参数不存在于循环函数中。例如,ivalue 已在此处丢失:test(i, value)

 function loop(value, test, update, body){
    for (let i = 0; i < 10; i++){
      if (test(i, value)) break;
      update(value);
      console.log(body(i));
    }
  }

  loop(5, (i, value) => { return i > value }, (value) => {return value + 1}, (i) => {return i*2;});

【讨论】:

  • 确保添加相关更改的说明。
猜你喜欢
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
相关资源
最近更新 更多