2010-11-08 56 views
2

從我所瞭解:的Javascript討好VS方法鏈接

柯里 - 函數返回功能

string.capitalize(1)('character')('at the end') 

方法鏈 - 方法返回對象

string.lowercase.capitalize.uppercase 

這是理解是否正確?

如果是這樣,有沒有其中一個比另一個好?

因爲在我看來,方法鏈更好,更具可讀性。你也可以自動完成顯示你可以使用什麼方法,如果你點擊「點」,它會顯示你可以傳遞的所有參數。

+1

JavaScript本身不支持咖喱(它可以通過閉包來模擬,但是..並且,發佈的示例看起來並不像一個明智的咖喱:-),因此只是鏈接(與咖喱不正交)通常用過的。咖喱的一個重要「原因」是能夠使用*部分應用的功能 - 再一次,只需要關閉即可使用。 – 2010-11-08 03:13:31

回答

4

一個更好的等價的咖喱會是Builder的設計模式。

人體工程學,你會做這樣的事情:

myObject.setIndexRangeToEffect(1,1).setTextTransformation(UPPERCASE).execute();

在任何時候調用execute之前,你實際上有一個「令行禁止」的行動目標。

+0

謝謝!我開始覺得咖喱就像建築模式,我也覺得我很瘋狂。 – Nikhil 2016-05-18 05:50:35