这个问题与:How to read API documentation for newbs?有关。但是,这个问题并不包括我在这里询问的具体格式,其中有嵌套括号(例如,[value[, args]]
)。
虽然,我认为这可能与任何API有关,但我正在研究D3.js API,特别是transition.ease()
。我无法弄清楚以下是什么意思:
transition.ease([value[, arguments]])
很难找到,因为我不知道谷歌的搜索条件!我只是想知道:
我知道如何使用D3功能;这只是我感兴趣的符号。
transition.ease([value[, arguments]])
的文档似乎使他们试图说出的内容相对清楚。此外,它遵循[]
中具有可选参数的方法的“正常”语法。
在这种情况下,这意味着ease()
是transition
的方法。对于ease()
方法:([value[, arguments]])
,意味着传递任何参数是可选的。然后,value[, arguments]
意指如果存在value
论证,则可以任选地存在无限制数量的额外arguments
。我说“意图是指”,因为通常可以使用椭圆...
来表示参数的倍数。因此,通常是:value[, arguments...]
。从进一步查看文档来看,显然这是预期的。
解析文档(我的其他格式):
指定过渡easing function。
如果value是函数,则它用于简化当前参数定时值t,其通常在[0,1]范围内。 (在转换结束时,t可能略大于1.)
您可以将函数作为参数传递给transition.ease()
。如果这样做,则将其用作确定转换发生方式的函数。
否则,将假定value为字符串,并将参数传递给d3.ease方法以生成缓动函数。默认的缓动功能是“立方输出”。请注意,无法自定义每元素或每个属性的缓动函数;但是,如果使用“线性”缓动函数,则可以使用attrTween或styleTween在插值器中应用自定义缓动。
如果value
不是函数,则假设您将使用d3.ease()
作为转换函数。在这种情况下,transition.ease()
的所有参数都传递给d3.ease()
。 d3.ease()
假设value
(在type
写作中称为d3.ease()
)是一个字符串。 d3.ease(type[, arguments…])
有能力采取额外的可选参数。为了让你指定你想要的d3.ease()
函数的任何其他参数,transition.ease()
也能够接受这样的参数并将它们传递给d3.ease()
。
注意:观察transition.ease()
和d3.ease()
之间的相互作用是我们看到transition.ease([value[, arguments]])
真的应该用椭圆写成transition.ease([value[, arguments..]])
。如果这不是预期的用途,那么所描述的与d3.ease()
的互动就没有意义。
如果未指定ease,则返回绑定到转换中第一个非null元素的缓动函数。
这实际上并不清楚。我希望它包含一个错误,“轻松”应该是“价值”。在这种情况下,它将读取:
如果未指定value,则返回绑定到转换中第一个非null元素的缓动函数。
如果这实际上是预期的,那么不指定transition.ease()
的任何参数将导致返回作为返回值的缓动函数,该函数绑定到转换中的第一个非null元素。这将是正常和预期使用不向这样的函数提供任何参数。因此,我认为这个问题很可能是文档中的错误。这可以通过查看源代码或通过实验来验证。
这意味着value
和arguments
是可选的。