组合(Composition)

为了真正达到重用的特性,只重用叶子然后每次都为他们创建一个新的容器是不够的。你还需要可以包含其他抽象的容器再次进行组合。我理解的“组合”就是将两个或者多个不同的抽象合并为一个。

  1. function FancyBox(children) {
  2. return {
  3. borderStyle: '1px solid blue',
  4. children: children
  5. };
  6. }
  7. function UserBox(user) {
  8. return FancyBox([
  9. 'Name: ',
  10. NameBox(user.firstName + ' ' + user.lastName)
  11. ]);
  12. }