Skip to content

Commit c6382b7

Browse files
authored
Merge pull request #577 from javascript-tutorial/joaquinelio-patch-1
Update article.md
2 parents 44866cb + 9078653 commit c6382b7

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

1-js/08-prototypes/03-native-prototypes/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Prototipos nativos
22

3-
La propiedad `"prototipo"` es ampliamente utilizada por el núcleo de JavaScript mismo. Todas las funciones de constructor integradas lo usan.
3+
La propiedad `"prototype"` es ampliamente utilizada por el núcleo de JavaScript mismo. Todas las funciones de constructor integradas lo usan.
44

55
Primero veremos los detalles y luego cómo usarlo para agregar nuevas capacidades a los objetos integrados.
66

77
## Object.prototype
88

9-
Digamos que sacamos un objeto vacío:
9+
Digamos que tenemos un objeto vacío y lo mostramos:
1010

1111
```js run
1212
let obj = {};
@@ -48,11 +48,11 @@ alert(Object.prototype.__proto__); // null
4848

4949
Otros objetos integrados como `Array`, `Date` , `Function` y otros también mantienen métodos en prototipos.
5050

51-
Por ejemplo, cuando creamos una matriz `[1, 2, 3]`, el constructor predeterminado `new Array()` se usa internamente. Entonces `Array.prototype` se convierte en su prototipo y proporciona métodos. Eso es muy eficiente en memoria.
51+
Por ejemplo, cuando creamos una matriz `[1, 2, 3]`, el constructor predeterminado `new Array()` se usa internamente. Entonces `Array.prototype` se convierte en su prototipo y proporciona sus métodos. Eso es muy eficiente en memoria.
5252

5353
Por especificación, todos los prototipos integrados tienen `Object.prototype` en la parte superior. Es por eso que algunas personas dicen que "todo hereda de los objetos".
5454

55-
Aquí está la imagen general (para que encajen 3 integrados):
55+
Aquí está la imagen general de 3 objetos integrados (3 para que quepan):
5656

5757
![](native-prototypes-classes.svg)
5858

@@ -71,7 +71,7 @@ alert( arr.__proto__.__proto__ === Object.prototype ); // verdadero
7171
alert( arr.__proto__.__proto__.__proto__ ); // null
7272
```
7373

74-
Algunos métodos en prototipos pueden superponerse, por ejemplo, `Array.prototype` tiene su propio `toString` que enumera elementos delimitados por comas:
74+
Algunos métodos en prototipos pueden superponerse; por ejemplo, `Array.prototype` tiene su propio `toString` que enumera elementos delimitados por comas:
7575

7676
```js run
7777
let arr = [1, 2, 3]
@@ -101,7 +101,7 @@ alert(f.__proto__.__proto__ == Object.prototype); // verdadero, hereda de objeto
101101

102102
Lo más intrincado sucede con cadenas, números y booleanos.
103103

104-
Como recordamos, no son objetos. Pero si tratamos de acceder a sus propiedades, se crean los objetos contenedores temporales utilizando los constructores integrados `String`, `Number` y `Boolean`. Proporcionan los métodos y desaparecen.
104+
Como recordamos, no son objetos. Pero si tratamos de acceder a sus propiedades, se crean los objetos contenedores temporales utilizando los constructores integrados `String`, `Number` y `Boolean`, estos proporcionan los métodos y luego desaparecen.
105105

106106
Estos objetos se crean de manera invisible para nosotros y la mayoría de los motores los optimizan, pero la especificación lo describe exactamente de esta manera. Los métodos de estos objetos también residen en prototipos, disponibles como `String.prototype`, `Number.prototype` y `Boolean.prototype`.
107107

@@ -130,9 +130,9 @@ Los prototipos son globales, por lo que es fácil generar un conflicto. Si dos b
130130
Por lo tanto, en general, modificar un prototipo nativo se considera una mala idea.
131131
```
132132

133-
**En la programación moderna, solo hay un caso en el que se aprueba la modificación de prototipos nativos. Eso es polyfilling (polirelleno).**
133+
**En la programación moderna, solo hay un caso en el que se aprueba la modificación de prototipos nativos: haciendo un polyfill.**
134134

135-
Polyfilling (polirellenado) es un término para sustituir un método que existe en la especificación de JavaScript, pero que aún no es compatible con un motor de JavaScript en particular.
135+
Cuando un método existe en la especificación de JavaScript, pero aún no está soportado por un motor de JavaScript en particular, podemos hacer "polyfill" (polirrelleno); esto es, crear un método sustituto.
136136

137137
Luego podemos implementarlo manualmente y llenar el prototipo integrado con él.
138138

@@ -160,7 +160,7 @@ alert( "La".repeat(3) ); // LaLaLa
160160

161161
En el capítulo <info:call-apply-decorators#method-borrowing> hablamos sobre el préstamo de método .
162162

163-
Es entonces cuando tomamos un método de un objeto y lo copiamos en otro.
163+
Es cuando tomamos un método de un objeto y lo copiamos en otro.
164164

165165
A menudo se toman prestados algunos métodos de prototipos nativos.
166166

@@ -195,5 +195,5 @@ Los métodos de préstamo son flexibles, permiten mezclar funcionalidades de dif
195195
- Todos los objetos integrados siguen el mismo patrón:
196196
- Los métodos se almacenan en el prototipo (`Array.prototype`, `Object.prototype`, `Date.prototype`, etc.)
197197
- El objeto en sí solo almacena los datos (elementos de arreglo, propiedades de objeto, la fecha)
198-
- Los primitivos también almacenan métodos en prototipos de objetos contenedores: `Number.prototype`, `String.prototype` y `Boolean.prototype`. Solo `undefined` y `null` no tienen objetos contenedores
199-
- Los prototipos integrados se pueden modificar o completar con nuevos métodos. Pero no se recomienda cambiarlos. El único caso permitido es probablemente cuando agregamos un nuevo estándar, pero aún no es compatible con el motor de JavaScript
198+
- Los primitivos también almacenan métodos en prototipos de objetos contenedores: `Number.prototype`, `String.prototype` y `Boolean.prototype`. Solo `undefined` y `null` no tienen objetos contenedores.
199+
- Los prototipos integrados se pueden modificar o completar con nuevos métodos. Pero no se recomienda cambiarlos. El único caso permitido es probablemente cuando agregamos un nuevo estándar que aún no es soportado por el motor de JavaScript.

0 commit comments

Comments
 (0)