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
Otros objetos integrados como `Array`, `Date` , `Function` y otros también mantienen métodos en prototipos.
50
50
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.
52
52
53
53
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".
54
54
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):
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:
Lo más intrincado sucede con cadenas, números y booleanos.
103
103
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.
105
105
106
106
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`.
107
107
@@ -130,9 +130,9 @@ Los prototipos son globales, por lo que es fácil generar un conflicto. Si dos b
130
130
Por lo tanto, en general, modificar un prototipo nativo se considera una mala idea.
131
131
```
132
132
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.**
134
134
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.
136
136
137
137
Luego podemos implementarlo manualmente y llenar el prototipo integrado con él.
En el capítulo <info:call-apply-decorators#method-borrowing> hablamos sobre el préstamo de método .
162
162
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.
164
164
165
165
A menudo se toman prestados algunos métodos de prototipos nativos.
166
166
@@ -195,5 +195,5 @@ Los métodos de préstamo son flexibles, permiten mezclar funcionalidades de dif
195
195
- Todos los objetos integrados siguen el mismo patrón:
196
196
- Los métodos se almacenan en el prototipo (`Array.prototype`, `Object.prototype`, `Date.prototype`, etc.)
197
197
- 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