w3schools una tipos pasar parametros otra objeto funciones funcion desde dentro crear codigos anonima javascript lambda ecmascript-6

tipos - pasar parametros a una funcion javascript desde html



¿Qué hace exactamente la función anónima de JavaScript f=> f? (5)

Estoy usando una biblioteca de terceros que tiene una función que toma funciones como argumentos. Estoy haciendo algunas verificaciones condicionales para decidir si agregar o no una función particular como parámetro y, en algunos casos, no quiero proporcionar una función. Proporcionar nulo en esos casos arroja un error.

Encontré este código que funciona, pero no entiendo completamente lo que está sucediendo.

compose(__DEV__ ? devTools() : f => f)

¿Es f => f equivalente a () => {} una función anónima vacía?


En cualquier momento con el dilema similar, puede usar Babel para obtener la respuesta.

Volvió así:

"use strict"; (function (f) { return f; });

Por cierto, => que usó es la función ES6 llamada https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions . La otra expresión de interés.

() => {}; // es6

se convertiría a:

(function () {});

Dado que las expresiones de función de flecha siempre son anónimas , tiene sentido si agrega el nombre a la función:

let empty = () => {}; // es6

se convertiría a

var empty = function empty() {};


Otros ya han mencionado lo que hace f => f , así que no voy a profundizar en eso. Solo voy a explicar el resto de la función, porque hay una pequeña diferencia entre f => f y __DEV__ ? devTools() : f => f __DEV__ ? devTools() : f => f

El operador ternario comprueba si __DEV__ es un valor verdadero y, de ser así, devuelve la función devTools() . de lo contrario, devuelve la función de identidad f => f que no hace nada. Dicho de otra manera: este código habilita algunas funciones de modo de desarrollo. Sin el código restante, es difícil saber qué agrega este modo, pero presumiblemente, permitirá cierta información de registro adicional y menos ofuscación.



f => f es la función de identidad . Simplemente devuelve el argumento que se pasó.

Esta función se usa a menudo como valores predeterminados para los procesos de transformación, ya que no realiza ninguna transformación.

¿Es f => f equivalente a () => {} una función anónima vacía?

No. La función vacía no devuelve nada. La función de identidad devuelve el argumento pasado.


f => f es similar * a la function(f){ return f; } function(f){ return f; }

Tan cerca, pero no exactamente lo que esperabas.

* - como se ha señalado en los comentarios, existen diferencias sutiles, pero por el bien de su pregunta, no creo que sean particularmente relevantes. Son muy relevantes en otras situaciones.