javascript - 自调用匿名函数

标签 javascript d3.js self-invoking-function

我试图理解以下 d3.js 示例: http://bl.ocks.org/mbostock/3884955

在示例中,有很多行代码如下所示:

data.forEach(function(d) {
    d.date = parseDate(d.date);
});

x.domain(d3.extent(data, function(d) { return d.date; }));

但是我不知道 d 作为参数传递到哪里以及 d 是什么?这个“魔法”是如何发挥作用的?

最佳答案

在第一个代码段中,d 是数组 data 的一个元素。作为 .forEach() 的第二个参数给出的匿名函数针对数组 data 的每个元素执行,并解析 .date.date 属性数据。

在第二种情况下,d3.extent() 的第二个参数中的匿名函数告诉 D3 如何从 data 中提取用于计算范围的值。也就是说,data 的每个元素都被认为是计算数组中值的范围,但元素也可能是复杂的对象而不是简单的数字。对于数字,不需要第二个参数(访问函数),但对于对象(如本例所示),您需要告诉 D3 要考虑什么值 - 这里是 .date

因此,在这两种情况下,匿名函数都会应用于数组 data 中的每个元素,并且传递给它们的参数 d 是数组的相应元素。请注意,这里的名称 d 是任意的,您也可以调用 d elementdatum 或类似的名称那个。

关于javascript - 自调用匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28067299/

相关文章:

javascript - 如何让我的应用程序在单击 Alt 按钮时打开 url

javascript - D3.js Force Layout - 只显示图表的一部分

javascript - 为什么允许通过原型(prototype)继承访问另一个闭包作用域中的私有(private)变量?

javascript - javascript自调用匿名函数的使用

d3.js - 将 D3 与 websharper 一起使用

javascript - Angular2从query.selectareas.js导入自调用的jQuery库给出运行时错误: jQuery is not defined

javascript - elseif onclick 函数不会显示

javascript - 如何使用国家/地区代码或国家/地区名称获取国家/地区拨号代码?

javascript - react js播放本地MP3文件

javascript - 在d3.js中,使用svg.node()的目的是什么?