Skip to content

Commit c318754

Browse files
committed
Prototype - finalizado
1 parent f62a884 commit c318754

2 files changed

Lines changed: 45 additions & 79 deletions

File tree

doc/pt/object/prototype.md

Lines changed: 25 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -55,63 +55,47 @@ que compõe seu protótipo. É importante notar que `new Bar()` **não** criará
5555
instância de `Foo`, mas reutilizará os atributos associados ao seu protótipo, desta forma,
5656
todas as instâncias de `Bar` compartilharão o **mesmo** `valor` da propriedade.
5757

58-
> **Nota:** **No** utilice `Bar.prototype = Foo`, ya que no apunta al prototipo
59-
> de `Foo`, sino al objeto de la función `Foo`. Así la cadena de prototipo
60-
> cambiará a `Function.prototype` y no a `Foo.prototype`;
61-
> Por lo tanto, el `método` no estará disponible en la cadena de prototipo.
58+
> **Nota:** **Não** use `Bar.prototype = Foo`, uma vez que não irá apontar para o protótipo
59+
> de `Foo`, mas sim para a função de objeto `Foo`. Assim, a cadeia de protótipos
60+
> vai passar por cima `Function.prototype`e não `Foo.prototype`,
61+
> portanto, o `método` não estará disponível na cadeia de protótipos.
6262
63-
### Búsqueda de propiedades
6463

65-
Cuando se accede a las propiedades de un objeto, JavaScript recorre la cadena de
66-
prototipo hacia **arriba** hasta encontrar la propiedad con el nombre solicitado.
64+
### Busca de propriedades
6765

68-
Cuando se llega al final de la cadena - concretamente `Object.prototype` - y aún
69-
no se ha encontrado la propiedad especificada, se retornará un valor
70-
[undefined](#core.undefined) en su lugar.
66+
Ao acessar as propriedades de um objeto, o JavaScript irá percorrer a cadeia de protótipos **para cima** até encontrar uma propriedade com o nome solicitado.
7167

72-
### La propiedad prototype
68+
Se atingir o topo da cadeia - ou seja `Object.prototype` - e ainda não encontrou a propriedade especificada, ele retornará o valor [undefined](#core.undefined) em seu lugar.
7369

74-
Aunque la propiedad prototype es usada por el lenguaje para construir la cadena
75-
de prototipos, es posible asignar **cualquier** valor. Aunque los tipos primitivos
76-
serán ignorados cuando se asigne en prototype.
70+
### A propriedade prototype
71+
72+
Enquanto a propriedade prototype é usado pela linguagem para construir as cadeias de protótipos, é ainda possível atribuir qualquer valor dado para isto. No entanto, os tipos primitivos simplesmente ser ignorados quando atribuídos a prototype.
7773

7874
function Foo() {}
79-
Foo.prototype = 1; // no tendrá efecto
75+
Foo.prototype = 1; // não terá efeito
76+
77+
Atribuindo objetos, como mostrado no exemplo anterior, vai funcionar, além de permitir a criação dinâmica de cadeias de protótipos.
78+
8079

81-
La asignación de objetos, como se muestra en el ejemplo anterior, funcionará, y permitirá
82-
la creación dinámica de cadena de prototipos.
80+
### Performance
8381

84-
### Rendimiento
82+
O tempo de pesquisa para as propriedades que estão no alto da cadeia de protótipos pode ter um impacto negativo no desempenho, e isso pode ser significativo no código onde o desempenho é crítico. Além disso, tentando acessar propriedades inexistentes fará o Javascript atravessar a cadeia de protótipos por completo.
8583

86-
El tiempo tomado en la búsqueda de propiedades es alta y la cadena de prototipo puede
87-
presentar un impacto negativo critico en el rendimiento en partes del código. Además,
88-
si ha tratado de acceder a propiedades que no existen este saltara a la cadena de prototipo.
84+
Além disso, quando [iteramos](#object.forinloop) as propriedades de um objeto, cada propriedade existente na cadeia de protótipos será enumerada.
8985

90-
Además, al recorrer en [iteración](#object.forinloop) las propiedades de un objeto
91-
y **cada** propiedad será encontrada en la cadena de prototipo de manera ennumerada.
92-
93-
### Extensión de prototipos nativos
86+
### Extensão de protótipos nativos
9487

95-
Una mala característica que se suele utilizar para extender `Object.prototype` o cualquier
96-
otro prototipo construido.
88+
Uma característica ruim é normalmente extender `Object.prototype` a qualquer outro protótipo construído.
9789

98-
Esta técnica es conocida en inglés como [monkey patching][1] ya que *encapsula* lo que se interrumpe en el código.
99-
Si bien es utilizado en frameworks como [Prototype][2], todavía no existen buenas razones para adoptarlo o integrarlo
100-
como tipos de dato o como funcionalidad no estándar.
90+
Esta técnica é conhecida como [monkey patching][1] e quebra o *encapsulamento*. Embora utilizado por frameworks populares como [Prototype][2], ainda não há uma boa razão para adotá-lo ou integrá-lo como tipos de dados ou funcionalidade não-padrão.
10191

102-
La **única** buena razón para extender un prototipo es acondicionarlo a nuevas
103-
características en motores de JavaScript; por ejemplo,
104-
[`Array.forEach`][3].
92+
A única boa razão para extender um protótipo embutido (built-in) é a portar os recursos mais recentes de motores de JavaScript, como por exemplo o [`Array.forEach`][3].
10593

106-
### En conclusión
10794

108-
Se **debe** entender por completo el módelo de herencia prototipado antes de
109-
escribir código complejo que lo utlilice. Además, observe la longitud de la
110-
cadena de prototipo y modificala si es necesario para evitar posibles problemas de
111-
rendimiento. Con relación a los prototipos nativos, estos **nunca** deben ser extendidos a
112-
menos que sea para mantener la compatibilidad con nuevas características de JavaScript.
95+
### Conclusão
96+
97+
É essencial entender o modelo de herança prototípica antes de escrever código complexo que faça uso dela. Além disso, estar ciente da extensão das cadeias de protótipos em seu código e dividi-las, se necessário, para evitar possíveis problemas de desempenho. Outro ponto, é que os protótipos nativos nunca devem ser extendidos a menos que seja por uma questão de compatibilidade com os mais recentes recursos de JavaScript.
11398

11499
[1]: http://en.wikipedia.org/wiki/Monkey_patch
115100
[2]: http://prototypejs.org/
116-
[3]: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach
117-
101+
[3]: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach

site/pt/index.html

Lines changed: 20 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -178,63 +178,45 @@ <h2>Licença</h2>
178178
todas as instâncias de <code>Bar</code> compartilharão o <strong>mesmo</strong> <code>valor</code> da propriedade.</p>
179179

180180
<aside>
181-
<p><strong>Nota:</strong> <strong>No</strong> utilice <code>Bar.prototype = Foo</code>, ya que no apunta al prototipo
182-
de <code>Foo</code>, sino al objeto de la función <code>Foo</code>. Así la cadena de prototipo
183-
cambiará a <code>Function.prototype</code> y no a <code>Foo.prototype</code>;
184-
Por lo tanto, el <code>método</code> no estará disponible en la cadena de prototipo.</p>
181+
<p><strong>Nota:</strong> <strong>Não</strong> use <code>Bar.prototype = Foo</code>, uma vez que não irá apontar para o protótipo
182+
de <code>Foo</code>, mas sim para a função de objeto <code>Foo</code>. Assim, a cadeia de protótipos
183+
vai passar por cima <code>Function.prototype</code>e não <code>Foo.prototype</code>,
184+
portanto, o <code>método</code> não estará disponível na cadeia de protótipos.</p>
185185
</aside>
186186

187-
</div><div><h3>Búsqueda de propiedades</h3>
187+
</div><div><h3>Busca de propriedades</h3>
188188

189-
<p>Cuando se accede a las propiedades de un objeto, JavaScript recorre la cadena de
190-
prototipo hacia <strong>arriba</strong> hasta encontrar la propiedad con el nombre solicitado.</p>
189+
<p>Ao acessar as propriedades de um objeto, o JavaScript irá percorrer a cadeia de protótipos <strong>para cima</strong> até encontrar uma propriedade com o nome solicitado.</p>
191190

192-
<p>Cuando se llega al final de la cadena - concretamente <code>Object.prototype</code> - y aún
193-
no se ha encontrado la propiedad especificada, se retornará un valor
194-
<a href="#core.undefined">undefined</a> en su lugar.</p>
191+
<p>Se atingir o topo da cadeia - ou seja <code>Object.prototype</code> - e ainda não encontrou a propriedade especificada, ele retornará o valor <a href="#core.undefined">undefined</a> em seu lugar.</p>
195192

196-
</div><div><h3>La propiedad prototype</h3>
193+
</div><div><h3>A propriedade prototype</h3>
197194

198-
<p>Aunque la propiedad prototype es usada por el lenguaje para construir la cadena
199-
de prototipos, es posible asignar <strong>cualquier</strong> valor. Aunque los tipos primitivos
200-
serán ignorados cuando se asigne en prototype.</p>
195+
<p>Enquanto a propriedade prototype é usado pela linguagem para construir as cadeias de protótipos, é ainda possível atribuir qualquer valor dado para isto. No entanto, os tipos primitivos simplesmente ser ignorados quando atribuídos a prototype.</p>
201196

202197
<pre><code>function Foo() {}
203-
Foo.prototype = 1; // no tendrá efecto
198+
Foo.prototype = 1; // não terá efeito
204199
</code></pre>
205200

206-
<p>La asignación de objetos, como se muestra en el ejemplo anterior, funcionará, y permitirá
207-
la creación dinámica de cadena de prototipos.</p>
201+
<p>Atribuindo objetos, como mostrado no exemplo anterior, vai funcionar, além de permitir a criação dinâmica de cadeias de protótipos.</p>
208202

209-
</div><div><h3>Rendimiento</h3>
203+
</div><div><h3>Performance</h3>
210204

211-
<p>El tiempo tomado en la búsqueda de propiedades es alta y la cadena de prototipo puede
212-
presentar un impacto negativo critico en el rendimiento en partes del código. Además,
213-
si ha tratado de acceder a propiedades que no existen este saltara a la cadena de prototipo.</p>
205+
<p>O tempo de pesquisa para as propriedades que estão no alto da cadeia de protótipos pode ter um impacto negativo no desempenho, e isso pode ser significativo no código onde o desempenho é crítico. Além disso, tentando acessar propriedades inexistentes fará o Javascript atravessar a cadeia de protótipos por completo.</p>
214206

215-
<p>Además, al recorrer en <a href="#object.forinloop">iteración</a> las propiedades de un objeto
216-
y <strong>cada</strong> propiedad será encontrada en la cadena de prototipo de manera ennumerada.</p>
207+
<p>Além disso, quando <a href="#object.forinloop">iteramos</a> as propriedades de um objeto, cada propriedade existente na cadeia de protótipos será enumerada.</p>
217208

218-
</div><div><h3>Extensión de prototipos nativos</h3>
209+
</div><div><h3>Extensão de protótipos nativos</h3>
219210

220-
<p>Una mala característica que se suele utilizar para extender <code>Object.prototype</code> o cualquier
221-
otro prototipo construido.</p>
211+
<p>Uma característica ruim é normalmente extender <code>Object.prototype</code> a qualquer outro protótipo construído.</p>
222212

223-
<p>Esta técnica es conocida en inglés como <a href="http://en.wikipedia.org/wiki/Monkey_patch">monkey patching</a> ya que <em>encapsula</em> lo que se interrumpe en el código.
224-
Si bien es utilizado en frameworks como <a href="http://prototypejs.org/">Prototype</a>, todavía no existen buenas razones para adoptarlo o integrarlo
225-
como tipos de dato o como funcionalidad no estándar.</p>
213+
<p>Esta técnica é conhecida como <a href="http://en.wikipedia.org/wiki/Monkey_patch">monkey patching</a> e quebra o <em>encapsulamento</em>. Embora utilizado por frameworks populares como <a href="http://prototypejs.org/">Prototype</a>, ainda não há uma boa razão para adotá-lo ou integrá-lo como tipos de dados ou funcionalidade não-padrão.</p>
226214

227-
<p>La <strong>única</strong> buena razón para extender un prototipo es acondicionarlo a nuevas
228-
características en motores de JavaScript; por ejemplo,
229-
<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"><code>Array.forEach</code></a>.</p>
215+
<p>A única boa razão para extender um protótipo embutido (built-in) é a portar os recursos mais recentes de motores de JavaScript, como por exemplo o <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"><code>Array.forEach</code></a>.</p>
230216

231-
</div><div><h3>En conclusión</h3>
217+
</div><div><h3>Conclusão</h3>
232218

233-
<p>Se <strong>debe</strong> entender por completo el módelo de herencia prototipado antes de
234-
escribir código complejo que lo utlilice. Además, observe la longitud de la
235-
cadena de prototipo y modificala si es necesario para evitar posibles problemas de
236-
rendimiento. Con relación a los prototipos nativos, estos <strong>nunca</strong> deben ser extendidos a
237-
menos que sea para mantener la compatibilidad con nuevas características de JavaScript.</p></div></article><article id="object.hasownproperty"><h2><code>hasOwnProperty</code></h2><div><p>Con el fin de comprobar si un objeto posee una propiedad definida <em>en sí</em> mismo y <strong>no</strong>
219+
<p>É essencial entender o modelo de herança prototípica antes de escrever código complexo que faça uso dela. Além disso, estar ciente da extensão das cadeias de protótipos em seu código e dividi-las, se necessário, para evitar possíveis problemas de desempenho. Outro ponto, é que os protótipos nativos nunca devem ser extendidos a menos que seja por uma questão de compatibilidade com os mais recentes recursos de JavaScript.</p></div></article><article id="object.hasownproperty"><h2><code>hasOwnProperty</code></h2><div><p>Con el fin de comprobar si un objeto posee una propiedad definida <em>en sí</em> mismo y <strong>no</strong>
238220
en algún lugar de su <a href="#object.prototype">cadena de prototipo</a>, es necesario utilizar
239221
el método <code>hasOwnProperty</code> ya que todos los objetos herendan de <code>Object.prototype</code>.</p>
240222

0 commit comments

Comments
 (0)