From 839a644a716baeebe23db62cfae13c325b06e2e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcio=20=22Alexandrino=22=20S=C3=A1?= <78682655+AlexandrinoMaranhao@users.noreply.github.com> Date: Tue, 17 Sep 2024 19:41:14 -0300 Subject: [PATCH] translated object oriented programming in javascript - typo fixes --- .../javascript/objects/object-oriented_programming/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/pt-br/learn/javascript/objects/object-oriented_programming/index.md b/files/pt-br/learn/javascript/objects/object-oriented_programming/index.md index 91d4df600c75be..68c1f34720a68e 100644 --- a/files/pt-br/learn/javascript/objects/object-oriented_programming/index.md +++ b/files/pt-br/learn/javascript/objects/object-oriented_programming/index.md @@ -234,11 +234,11 @@ Nos dois antigos anteriores, demos uma olhada em alguns recursos centrais do Jav - **a cadeia de protótipos** pode parecer então uma forma natural de estabelecer herança entre as classes. Por exemplo, se tivermos um objeto `Aluno` cujo protótipo é `Pessoa`, então o objeto poderá **_herdar_** a propriedade `nome` e **_sobrescrever_** o método `apresentaSe()`. -Contudo é importante ressaltar as diferenças exstentes entre esses recursos e os conceitos da POO "clássica" como eles foram descritos e é isso o que faremos a seguir. +Contudo é importante ressaltar as diferenças existentes entre esses recursos e os conceitos da POO "clássica" como eles foram descritos e é isso o que faremos a seguir. Para começar, na POO baseada em classes, as classe e os objetos são entidades separadas e objetos sempre são criados como instâncias de classe. Além disso, há uma distinção entre a característica usada para definir uma classe (a sintaxe da classe em si) e a característica usada para instanciar um objeto (o construtor). No JavScript, é possível e frequente a criação de objetos sem qualquer definição separada de classe, seja com o uso de uma função ou um objeto literal. Essa peculiaridade do JavaScript permite que as operar com objetos seja bem mais leve se comparado com linguagens que operam estritamente conforme a POO clássica. -Em segundo lugar, apesar de uma cadeia de protótipos parecer-se com e, em algumas partes, comportar-se tal como uma hierarquia de herança padrão, no final existem diferenças que tornam ambas distintas entre si. Quando uma subclasse é instanciada, um único objeto é criado de forma tal que ele combina propriedades definidas na subclasse com as propriedades definidas na superclasse mais acima na cadeia hierárquica. Com o uso de protótipos, cada nível da hierarquia é representado por um objeto segregado distinto e todos esses objetos são coligados através da propriedade `proto`. O comportamento da cadeia de protótipos de fato é bem mais parecido com **delegação** do que herança. Delegação é um padrão de programação no qual um objeto, quando solicitado para realizar uma tarefa, pode fazê-la por conta própria ou pedir para outro objeto (**seu delegado**) fazê-la em seu favor. De várias maneiras, delegação é um jeito mais flexível e dinâmica de combinar objetos se compararmos com a herança, bem mais rígida e estática (uma dessas maneiras trata da possibilidade de mudar ou substituir totalmente o delegado em tempo de execução). +Em segundo lugar, apesar de uma cadeia de protótipos parecer-se com e, em algumas partes, comportar-se tal como uma hierarquia de herança padrão, no final existem diferenças que tornam ambas distintas entre si. Quando uma subclasse é instanciada, um único objeto é criado de forma tal que ele combina propriedades definidas na subclasse com as propriedades definidas na superclasse mais acima na cadeia hierárquica. Com o uso de protótipos, cada nível da hierarquia é representado por um objeto segregado distinto e todos esses objetos são coligados através da propriedade `proto`. O comportamento da cadeia de protótipos de fato é bem mais parecido com **delegação** do que herança. Delegação é um padrão de programação no qual um objeto, quando solicitado para realizar uma tarefa, pode fazê-la por conta própria ou pedir para outro objeto (**seu delegado**) fazê-la em seu favor. De várias maneiras, a delegação é um jeito mais flexível e dinâmico de combinar objetos se compararmos com a herança, bem mais rígida e estática (uma dessas maneiras trata da possibilidade de mudar ou substituir totalmente o delegado em tempo de execução). Tendo dito isso, construtores e protótipos podem ser utilizados para implementar padrões POO baseados em classe no JavaScript sem maiores problemas. Só é preciso atentar que usá-los para diretamente implementar recursos como herança é algo complicado, então o JavaScript oferece recursos adicionais, em sobreposição ao modelo de protótipos, que mapeiam mais proximamente aos conceitos da POO baseada em classes. Esses recursos adicionais são assunto do próximo artigo.