@@ -63,33 +63,31 @@ function sum() {
6363}
6464console . log ( sum ( 1 , 2 , 3 ) ) ; // 6;
6565
66-
6766///-- ARROW FUNCTIONS *****************************************************************************
6867
6968// SINTAXIS
7069
7170// Funciones flecha o también llamadas "lambda". Siempre son anónimas.
72- const toUpper = ( text ) => {
73- return text . toUpperCase ( ) ;
71+ const double = ( num ) => {
72+ return num * 2 ;
7473} ;
7574
7675// Si solo tenemos la sentencia "return" podemos acortar la función y ahorrarnos
7776// la palabra clave "return" y las llaves:
78- const toUpper = ( text ) => text . toUpperCase ( ) ;
77+ const double = ( num ) => num * 2 ;
7978
8079// También podemos omitir los paréntesis cuando el argumento es único:
81- const toUpper = text => text . toUpperCase ( ) ;
80+ const double = num => num * 2 ;
8281// Sólo cuando es único, porque sino la coma de separación de argumentos se
8382// podría confundir con el operador coma.
8483
8584// En caso de que lo que devuelva sea un objeto literal hay que tener cuidado:
8685const toObject = ( name , surname , age ) => {
87- return { name, surname, age }
88- }
86+ return { name, surname, age } ;
87+ } ;
8988// y utilizar paréntesis para devolver en la forma corta, ya que las llaves de
9089// objeto literal se confundirían con las llaves de ámbito de función.
91- const toObject = ( name , surname , age ) => ( { name, surname, age } )
92-
90+ const toObject = ( name , surname , age ) => ( { name, surname, age } ) ;
9391
9492///-- SIMILITUDES: classic vs arrow *************************************************************
9593
@@ -114,11 +112,11 @@ saySomething("hello world", str => str.replace(/[aeiou]/gi, "")); // hll wrld
114112const createCounter = ( ) => {
115113 let i = 0 ;
116114 return ( ) => console . log ( ++ i ) ;
117- }
118- const count = createCounter ( ) ;
119- count ( ) ; // 1
120- count ( ) ; // 2
121- count ( ) ; // 3
115+ } ;
116+ const countFn = createCounter ( ) ;
117+ countFn ( ) ; // 1
118+ countFn ( ) ; // 2
119+ countFn ( ) ; // 3
122120
123121// ⚠ En este último ejemplo hemos empleado un CLOSURE! Este concepto avanzado se verá con más
124122// detenimiento en la parte avanzada.
@@ -143,7 +141,7 @@ en tiempo de desarrollo. Están más pensadas para ser usadas como 'function exp
143141 */
144142
145143function f ( ) {
146- console . log ( this . age ) ; // Aqui el contexto es el "caller" de la función. this -> caller.
144+ console . log ( this . age ) ; // Aqui el contexto es el "caller" de la función. this -> caller.
147145}
148146
149147// Al hacer la siguiente llamada debéis preguntaros ... ¿quién está invocando a la función f?
@@ -181,7 +179,6 @@ g.call({ surname: "calzado" }); // camargo
181179// No importa que intente invocar la arrow function con un objeto distinto de "window", no tiene
182180// efecto!
183181
184-
185182// *** Otras diferencias
186183
187184// - Las arrow functions no pueden ser 'variadic' y no presentan por tanto la keyword 'arguments'
@@ -191,7 +188,7 @@ const sum = () => {
191188} ;
192189console . log ( sum ( 1 , 2 , 3 ) ) ; // Uncaught ReferenceError: arguments is not defined
193190
194- // Sin embargo, existe una forma de obtener todos los argumentos con forma de array *similar* a
191+ // Sin embargo, existe una forma de obtener todos los argumentos con forma de array *similar* a
195192//arguments. Esto lo veremos más adelante.
196193
197194// - Las arrow functions no pueden ser funciones constructoras ni presentan la propiedad
0 commit comments