javascript - 对单行代码使用匿名函数有什么意义?

标签 javascript d3.js

我经常看到这样的代码(这不是 D3 特定的东西,这只是一个示例):

svg.append("text")
    .text(function() {
        return round2DP(d.frequency); // d refers to a data element; d.frequency is a float. round2DP() rounds to 2 decimal places.
    }) // etc

为什么要使用匿名函数?为什么不直接写 .text(round2DP(d.Frequency)) 呢?它看起来更简单,更易读,对我来说更有意义:为什么要在不需要的地方创建一个不必要的函数呢?但我一直看到这一点。诸如此类的事情背后的原因是什么?

编辑:澄清一下,在这种特殊情况下.text()可以接受函数和值,因此它不一定需要回调。

最佳答案

Why not just write .text(round2DP(d.frequency))?

function(){}函数引用并且 round2DP(d.frequency)是一个函数调用

在第一种情况下,您传递一个函数参数(尚未执行),在第二种情况下,您传递函数调用的返回值。

这取决于 text 的参数是什么方法期望。如果您text()方法接受一个函数引用参数,那么你需要选择第一个,否则如果它正在寻找返回值 round2DP(d.frequency)然后选择第二个。

如果text接受两者并且都给出相同的输出,然后 which one to choose将取决于您的具体情况。您可以根据您对可读性和可维护性的偏好在它们之间进行选择。

关于javascript - 对单行代码使用匿名函数有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36302042/

相关文章:

javascript - 使用 Jquery Mobile 多页模板将页面重定向到带有 Javascript 的 div

javascript - 如何使两个函数在单击时使用react

javascript - 绘图 D3 可视化中输入数据(CSV 或 JSON 格式)的最大容量?

javascript - d3.js,将转换应用于数据?

javascript - 使用 Planetary.js 将图像放置在某个位置

javascript - D3 js Force Directed Graph - 突出显示两点之间的路径

java - GWT:如果未登录应用程序,静态 HTML 页面应重定向到 login.html

Javascript 异步/等待 ajax 调用

Javascript/jquery,获取 (x,y) 处的所有 div 位置。转发触摸?

javascript - 检查 D3 中潜在的 CSV 文件问题