javascript - 为什么可以在不提供数据参数的情况下引用此函数?

标签 javascript ecmascript-6

我不明白如何在不提供 arg 值的情况下调用这个接受 arg 的函数。我猜测,由于 PS5 库中的 loadStrings 方法将进行异步调用,因此存在返回数据或消息的假设,但我仍然希望在函数调用中提供 arg,因为函数定义需要一个。

试图在网上找到对此的解释,但目前找不到。

这就是使用和工作的方式。

function setup() {
  loadStrings("lines.txt", doText);
}

function doText(data) {
  for (var i=0; i<data.length; i++) {
    text(data[i], 5, 20*i+20);
  }
}

我认为要为 doText 调用提供一个参数,我必须将它包装在一个匿名函数中以防止通过在名称后添加开放括号然后在包装器内给它 arg 来防止立即执行.

function setup() {
  loadStrings("lines.txt", function () {doText(data);});
}

function doText(data) {
  for (var i=0; i<data.length; i++) {
    text(data[i], 5, 20*i+20);
  }
}

那么在没有提供实际 arg 值的第一个示例中,数据是如何神奇地传递的呢?

最佳答案

这里没有魔法。正如您在 docs 中看到的那样或在 code of p5.js 中查看 loadString 正在读取给定文本文件的行并将结果数组作为第一个参数传递给回调函数。

关于javascript - 为什么可以在不提供数据参数的情况下引用此函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54504564/

相关文章:

javascript - 如何使用 jQuery Accordion 创建 div

javascript - 带有文本形式替代的 Bootstrap 子菜单?

javascript - PhantomJS 是否支持 ES6 为爬虫和机器人提供 angularjs 应用程序?

javascript - 如何将值传递给组件?

javascript - 将 MSAL 与 React 结合使用,acquireTokenSilent 导致应用刷新并失败

javascript - 如何通过验证将冒号自动放入 mac 地址的文本框中(javascript 或 angularjs)?

javascript - ESlint 对匿名函数关键字发出警告,并且不允许对函数内的参数进行赋值

javascript - 如何一次在 Javascript Map 中设置多个值?

javascript - React 组件中的故障加载方法

node.js - typescript 错误: TS2339:Property 'map' does not exist on type 'string'