You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/pt/object/prototype.md
+25-41Lines changed: 25 additions & 41 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,63 +55,47 @@ que compõe seu protótipo. É importante notar que `new Bar()` **não** criará
55
55
instância de `Foo`, mas reutilizará os atributos associados ao seu protótipo, desta forma,
56
56
todas as instâncias de `Bar` compartilharão o **mesmo**`valor` da propriedade.
57
57
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.
62
62
63
-
### Búsqueda de propiedades
64
63
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
67
65
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.
71
67
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.
73
69
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.
77
73
78
74
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
+
80
79
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
83
81
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.
85
83
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.
89
85
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
94
87
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.
97
89
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.
101
91
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].
105
93
106
-
### En conclusión
107
94
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.
Copy file name to clipboardExpand all lines: site/pt/index.html
+20-38Lines changed: 20 additions & 38 deletions
Original file line number
Diff line number
Diff line change
@@ -178,63 +178,45 @@ <h2>Licença</h2>
178
178
todas as instâncias de <code>Bar</code> compartilharão o <strong>mesmo</strong><code>valor</code> da propriedade.</p>
179
179
180
180
<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>
185
185
</aside>
186
186
187
-
</div><div><h3>Búsqueda de propiedades</h3>
187
+
</div><div><h3>Busca de propriedades</h3>
188
188
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>
191
190
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
-
<ahref="#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 <ahref="#core.undefined">undefined</a> em seu lugar.</p>
195
192
196
-
</div><div><h3>La propiedad prototype</h3>
193
+
</div><div><h3>A propriedade prototype</h3>
197
194
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>
201
196
202
197
<pre><code>function Foo() {}
203
-
Foo.prototype = 1; // no tendrá efecto
198
+
Foo.prototype = 1; // não terá efeito
204
199
</code></pre>
205
200
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>
208
202
209
-
</div><div><h3>Rendimiento</h3>
203
+
</div><div><h3>Performance</h3>
210
204
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>
214
206
215
-
<p>Además, al recorrer en <ahref="#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 <ahref="#object.forinloop">iteramos</a> as propriedades de um objeto, cada propriedade existente na cadeia de protótipos será enumerada.</p>
217
208
218
-
</div><div><h3>Extensión de prototipos nativos</h3>
209
+
</div><div><h3>Extensão de protótipos nativos</h3>
219
210
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>
222
212
223
-
<p>Esta técnica es conocida en inglés como <ahref="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 <ahref="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 <ahref="http://en.wikipedia.org/wiki/Monkey_patch">monkey patching</a> e quebra o <em>encapsulamento</em>. Embora utilizado por frameworks populares como <ahref="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>
226
214
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,
<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 <ahref="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach"><code>Array.forEach</code></a>.</p>
230
216
231
-
</div><div><h3>En conclusión</h3>
217
+
</div><div><h3>Conclusão</h3>
232
218
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><articleid="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><articleid="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>
238
220
en algún lugar de su <ahref="#object.prototype">cadena de prototipo</a>, es necesario utilizar
239
221
el método <code>hasOwnProperty</code> ya que todos los objetos herendan de <code>Object.prototype</code>.</p>
0 commit comments