Skip to content

Commit f9a5057

Browse files
committed
Adiciona tradução do exercício "outra célula" no capítulo 6
1 parent 61c9cf3 commit f9a5057

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

chapters/06-a-vida-secreta-dos-objetos.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,3 +542,25 @@ console.log(new Vector(3, 4).length);
542542
Sua solução pode seguir o padrão do construtor `Rabbit` deste capítulo de forma bem semelhante.
543543

544544
Adicionar uma propriedade getter ao construtor pode ser feita com a função `Object.defineProperty`. Para calcular a distância do ponto `(0, 0)` até `(x, y)` você pode usar o teorema de Pitágoras, que diz que o quadrado da distância que estamos procurando é igual ao quadrado da coordenada x mais o quadrado da coordenada y. Assim, `√(x2 + y2)` é o número que você quer, e `Math.sqrt` é o caminho para você calcular a raiz quadrada no JavaScript.
545+
546+
## Outra célula
547+
548+
Implemente uma célula do tipo `StretchCell(inner, width, height)` que se adeque a [interface da célula da tabela](#definindo-uma-tabela) descrita anteriormente neste capítulo. Ela deve envolver outra célula (como `UnderlinedCell` faz) e assegurar que a célula resultante tem pelo menos a largura (`width`) e altura (`height`) especificada, mesmo se a célula interior for naturalmente menor.
549+
550+
```js
551+
// Your code here.
552+
553+
var sc = new StretchCell(new TextCell("abc"), 1, 2);
554+
console.log(sc.minWidth());
555+
// → 3
556+
console.log(sc.minHeight());
557+
// → 2
558+
console.log(sc.draw(3, 2));
559+
// → ["abc", " "]
560+
```
561+
562+
**Dicas**
563+
564+
Você vai ter que armazenar os 3 argumentos construtores na instância do objeto. Os métodos `minWidth` e `minHeight` devem chamar através dos métodos correspondentes na célular interna (`inner`), mas assegure-se que nenhum número menor que o tamanho dado é retornado (possivelmente usando `Math.max`).
565+
566+
Não se esqueça de adicionar um método `draw` que simplesmente encaminha a chamada para a célula interior.

0 commit comments

Comments
 (0)