【问题标题】:JavaScript API documentation - what does functionName([value[, arguments]]) notation mean?JavaScript API 文档 - functionName([value[, arguments]]) 表示法是什么意思?
【发布时间】:2016-11-26 18:03:52
【问题描述】:

此问题与:How to read API documentation for newbs? 有关。但是,该问题并未涵盖我在此处询问嵌套括号的具体格式(例如,[value[, args]])。

虽然我认为这可能与任何 API 有关,但我正在查看 D3.js API,特别是 transition.ease()。我无法弄清楚以下是什么意思:

transition.ease([value[, arguments]])

很难找到,因为我不知道 Google 的搜索词是什么!我只想知道:

  1. 应该如何阅读?
  2. 它是一般/正常的表示法吗?

我知道如何使用 D3 功能;这只是我感兴趣的符号。

【问题讨论】:

  • 可能的值是可选的,如果提供了值,那么参数是可选的。
  • @georg 不要认为它是重复的,因为我问的是一个非常具体的符号 [x[,x]],该重复的问题/答案没有涵盖。下面的 Mayken 回答涵盖了这一点
  • 我同意,虽然密切相关,但链接为重复的问题并不涵盖嵌套可选参数的具体情况。对该问题投票最多的答案很好地涵盖了选项符号。虽然这个问题是该符号的扩展,但很明显,您和其他人并不认为它是直观的。一个好主意是edit这个问题链接到该问题并描述“答案不能完全解决您的问题”的原因/方式。毕竟,关于重复问题的文本指出,如果是这种情况,那么应该问另一个问题(例如这个问题)。
  • 如果您在问题中包含这样的链接和文本,并解释为什么这不是重复的,我会投票重新打开这个问题。

标签: javascript api d3.js


【解决方案1】:

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 方法以生成缓动函数。默认的缓动函数是“cubic-in-out”。请注意,无法为每个元素或每个属性自定义缓动函数;但是,如果您使用“线性”缓动函数,则可以使用attrTweenstyleTween 在插值器内应用自定义缓动。

如果value 不是函数,则假定您将使用d3.ease() 作为转换函数。在这种情况下,transition.ease() 的所有参数都将传递给d3.ease()d3.ease() 假定 value(在 d3.ease() 的文章中称为 type)是一个字符串。 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,则返回绑定到过渡中第一个非空元素的缓动函数。

这实际上并不清楚。我希望它包含一个错误,即“ease”应该是“value”。在这种情况下,它将显示为:

如果未指定 value,则返回绑定到过渡中第一个非空元素的缓动函数。

如果这确实是预期的,那么不为transition.ease() 指定任何参数将导致作为返回值返回绑定到过渡中第一个非空元素的缓动函数。这将是不向此类函数提供任何参数的正常和预期用途。因此,我认为这个问题很可能确实是文档中的错误。这可以通过查看源代码或通过实验来验证。

【讨论】:

  • 谢谢。这是一个很好的解释。我很确定仅基于 [value[,params]] 不可能知道需要什么。仅使用该符号,您无法推断出如果 value 不是函数,则它需要一个字符串。我以为这是写api doc的通用方式,但它不是
【解决方案2】:

这意味着valuearguments 是可选的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2013-07-13
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多