2016-07-22 39 views
3

這個問題有關:How to read API documentation for newbs?。然而,這個問題並沒有涵蓋我在這裏提到的具有嵌套括號的特定格式(例如,[value[, args]])。JavaScript API文檔 - functionName([value [,arguments]])表示法的含義是什麼?

雖然,我認爲這可能與任何API有關,但我正在研究D3.js API,具體爲transition.ease()。我無法弄清楚以下的含義:

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

很難搞清楚,因爲我不知道谷歌有什麼搜索條件!我只是想知道:

  1. 它是如何被讀取的?
  2. 這是一般性的/正常的表示法嗎?

我知道如何使用D3函數;它只是我感興趣的符號。

+2

可能的值是可選的,如果提供了值,則參數是可選的。 –

+0

@georg不認爲它是重複的,因爲我提出了一個非常具體的記法[x [,x]],這個重複的問題/答案沒有涉及。下面的Mayken答案涵蓋了這個 – Ryan

+0

我同意,雖然密切相關,但作爲重複鏈接的問題不包括嵌套可選參數的具體情況。對這個問題的最廣泛的答案涵蓋了選項符號。雖然這個問題是該符號的擴展,但很顯然你和其他人並不覺得它是直觀的。一個好主意是將這個問題鏈接到這個問題上,並描述爲什麼/如何「答案不能完全解決你的問題」。畢竟,關於重複問題的文本指出,如果是這種情況,則應該提出另一個問題(例如,這個問題)。 – Makyen

回答

3

transition.ease([value[, arguments]])的文檔似乎使它比較清楚他們試圖說的是什麼。另外,它遵循[]中具有可選參數的方法的「正常」語法。

在這種情況下,這意味着ease()transition的一種方法。對於ease()方法:([value[, arguments]]),表示傳遞任何參數是可選的。那麼,value[, arguments]旨在表示如果存在參數,則可以可選地存在不受限制數量的附加arguments。我說「旨在表示」,因爲通常能夠使用橢圓...表示參數的倍數。因此,通常是:value[, arguments...]。從進一步查看文檔,很明顯,這是預期的。

(由我的其他格式)解析文檔:

指定過渡easing function

如果是一個函數,它被用於緩解當前參數定時值,其通常在範圍[0,1]。 (在過渡結束時,可以是大於1稍大)

可以傳遞函數作爲參數transition.ease()。如果這樣做,那麼它將用作確定轉換髮生的函數。

否則,被假定爲一個串和參數被傳遞給所述d3.ease方法來生成一個緩動函數。默認的緩動功能是「立方式進出」。請注意,無法自定義每個元素或每個屬性的緩動功能;但是,如果使用「線性」緩動功能,則可以使用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()的交互就沒有意義。

如果未指定容易,則返回綁定到過渡的第一個非空元素的緩動函數。

這實際上並不清楚。我期望它包含一個錯誤,即「易用性」應該是「」。在這種情況下,將讀:

如果值未指定,則返回綁定到過渡的第一個非空元素的緩動函數。

如果這種情況真的發生了什麼意圖是,那麼不指定任何參數transition.ease()將導致取回的返回值,這勢必會在轉型的第一個非空元素的緩解作用。這將是一個正常的和預期的使用,不會爲這樣的函數提供任何參數。因此,我認爲這個問題很可能是文檔中的錯誤。這可以通過查看源代碼或通過實驗來驗證。

+0

謝謝。這是一個很好的解釋。我非常肯定,僅僅基於[value [,params]],就不可能知道需要什麼。用這種表示法,你不能推斷出,如果value不是函數,它需要一個字符串。我認爲這是寫api文檔的通用方式,但事實並非如此 – Ryan

-1

這意味着valuearguments是可選的。

相關問題