gpt4 book ai didi

Javascript - 函数参数

转载 作者:搜寻专家 更新时间:2023-11-01 05:14:22 25 4
gpt4 key购买 nike

我正在学习 Javascript,对下面的用法有点困惑。这些问题可能比 d3 更具体。

http://mbostock.github.com/d3/ex/sunburst.html

var arc = d3.svg.arc()
.startAngle(function(d) { return d.x; })
.endAngle(function(d) { return d.x + d.dx; })
.innerRadius(function(d) { return Math.sqrt(d.y); })
.outerRadius(function(d) { return Math.sqrt(d.y + d.dy); });

所以,

  1. startAngle、endAngle 等将一个函数作为参数。参数是一个函数而不仅仅是一个数字的理由是什么?
  2. 在完整代码中,没有定义“d”的地方。我在几乎所有的 d3 程序中都看到它。 “d”是什么意思?它是如何设置的或从哪里传递的?

谢谢。

最佳答案

第一个问题:

d3.svg.arc 对象用于在饼图中创建切片。这些切片中的每一个都需要不同的开始和结束 Angular 才能正确显示。

d3.js 中,您不会为每个切片传递两个 Angular ,而是提供一个函数,该函数接受一个参数 d,它是对应的数据元素该切片并返回 Angular 。此处设置的其他参数也是如此。

另一个优点是,数据可以包含多个属性,您可以决定哪个属性在可视化方面占据哪个部分。

你的第二个问题

当使用一个函数作为另一个函数的参数时,通常使用给定形式的函数表达式。在 d3.js 中,大多数用作参数的函数本身会传入一个或两个参数(大多数情况下是需要转换的数据部分)。在您的函数表达式中,您需要(或至少应该)命名这些参数以便对其进行寻址。示例中的大部分时间 d 用作保存特定数据项的参数的参数名称。

它不需要在其他地方定义,因为它只是一个普通的函数参数。如果您愿意,可以按以下方式重写它:

function startAngleParam( d ) {
return d.x;
}

var arc = d3.svg.arc()
.startAngle( startAngleParam )
...

关于Javascript - 函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10881842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com