javascript - javascript 回调如何知道它们的参数是什么?

标签 javascript d3.js callback

想象一下我有以下场景:

var dataset = [5, 5, 5, 5, 5]

d3.select("body").selectAll("p")
  .data(dataset)
  .enter()
  .append("p")
  .text(function(a) { return a;});

我无法理解 javascript 到底如何知道我正在处理数据,它与 .text 方法的定义方式有关吗?

然后我读了这个article并变得更加困惑,因为它在我的情况下不起作用。鉴于该代码:

d3.select("body").selectAll("p")
  .data(dataset)
  .enter()
  .append("p")
  .text(function(err, data) { return data;});

我的输出是:

0

1

2

3

4

所以我的问题是:约定是什么?它是如何实现的?

最佳答案

而不是

.text(function(err, data) { return data;});

代码应该是:

.text(function(data, index) { return data;});

因为 d3 回调将数据作为函数中的第一个输入,将索引作为函数中的第二个输入。

看到这个 fiddle :https://jsfiddle.net/m8h0maLn/1/

关于javascript - javascript 回调如何知道它们的参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36374870/

相关文章:

javascript - 在使用 jQuery 请求 JSONP 时,我可以使用静态(即预先确定的)回调函数名称吗?

javascript - 如何使用 React Native 使工具栏位于默认键盘上方?

javascript - d3.js - 防止强制定向图中父/其他组的 "clustering"

svg - d3.js 的问题 - 缩放路径形状

javascript - 为什么当我引入 D3 .transition() 时会得到 "Uncaught TypeError"?

C++ 可变参数回调

Python3 Websocket Callback 无法分配类成员函数

javascript - 为什么 scrollView 在我的代码中不能以垂直方式工作?

javascript - 页面转换错误 : "failed push state attempt" 的 Barba.js

javascript - 如何使用画笔选择D3.js中多个组元素中包含的圆圈?