嵌套和链接(组成)之间有什么区别

时间:2018-08-07 11:30:08

标签: javascript

javascript世界中这两种模式之间是否有区别?

  1. public $items; public $totalQty = 0; public $totalPrice = 0; public function __construct($oldCart) { if ($oldCart) { $this->items = $oldCart->items; $this->totalQty = $oldCart->totalQty; $this->totalPrice = $oldCart->totalPrice; } }
  2. a(b)(c)(f)

它们在功能上相等,并且都增加了调用堆栈的长度。

似乎撰写模式(#1)更受欢迎,想知道我们是否应该选择一个理由?

1 个答案:

答案 0 :(得分:3)

是的,有区别。

  1. a(b)(c)(f)-在这里,您拥有currying函数a,该函数将函数返回为结果,将函数返回为结果。

  2. a(b(c(f)))-这里有3个常规函数(a,b,c),其中每个函数的结果作为参数提供给另一个函数。

要了解第一种方法的好处,您必须熟悉函数式编程(这是全科学的知识,对此答案的解释非常广泛)。