想象一下我有以下场景:
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/