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: 1-js/06-advanced-functions/02-rest-parameters-spread/article.md
+49-5Lines changed: 49 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -96,13 +96,11 @@ showName("Julio", "Cesar");
96
96
showName("Ilya");
97
97
```
98
98
99
-
Antiguamente, los parámetros rest no existían en el lenguaje, y usar `arguments` era la única manera de obtener todos los argumentos de una función, sin importar la cantidad de ellos.
100
-
101
-
Y aún funciona, podemos usarlo hoy en día.
99
+
Antiguamente, los parámetros rest no existían en el lenguaje, y usar `arguments` era la única manera de obtener todos los argumentos de una función. Y aún funciona, podemos encontrarlo en código antiguo.
102
100
103
101
Pero la desventaja es que a pesar de que `arguments` es símil-array e iterable, no es un array. No soporta los métodos de array, no podemos ejecutar `arguments.map(...)` por ejemplo.
104
102
105
-
Además, siempre contiene todos los argumentos. No podemos capturarlos parcialmente, como hicimos con los parámetros rest.
103
+
Además, siempre contiene todos los argumentos. No podemos capturarlos parcialmente como hicimos con los parámetros rest.
106
104
107
105
Por lo tanto, cuando necesitemos estas funcionalidades, los parámetros rest son preferidos.
108
106
@@ -119,9 +117,10 @@ function f() {
119
117
120
118
f(1); // 1
121
119
```
122
-
````
123
120
124
121
Como recordamos, las funciones flecha no tienen su propio `this`. Ahora sabemos que tampoco tienen el objeto especial `arguments`.
122
+
````
123
+
125
124
126
125
## Operador Spread [#spread-operator]
127
126
@@ -226,6 +225,51 @@ Pero hay una sutil diferencia entre `Array.from(obj)` y `[...obj]`:
226
225
Por lo tanto, para la tarea de convertir algo en un array, `Array.from` tiende a ser mas universal.
227
226
228
227
228
+
## Obtener una copia de un objeto array
229
+
230
+
¿Recuerdas cuando hablamos acerca de `Object.assign()` [anteriormente](https://javascript.info/object#cloning-and-merging-object-assign)?
231
+
232
+
Es posible hacer lo mismo con la sintaxis de spread
233
+
234
+
```js run
235
+
let arr = [1, 2, 3];
236
+
let arrCopy = [...arr]; // separa el array en una lista de parameters
Esta manera de copiar un objeto es mucho más corta que `let objCopy = Object.assign({}, obj);` o para un array `let arrCopy = Object.assign([], arr);` por lo que preferimos usarla siempre que podemos.
271
+
272
+
229
273
## Resumen
230
274
231
275
Cuando veamos `"..."` en el código, son los parámetros rest o el operador spread.
0 commit comments