Me disculpo por mi pregunta estúpida, no soy bueno en javascript y angularjs. He estado haciendo referencia al código de algunos proyectos, y estoy realmente confundido acerca de esto, ¡qué es realmente! function(a,b,c){}(x,y,z). No lo había visto antes. No soy bueno en javascript ni en angularjs. ¡Gracias por toda la ayuda!
!function (e, n, t) { "use strict"; // code }(window, angular, jQuery)Es una forma pirateada de ejecutar inmediatamente una función anónima. Si tuviera que definirlo normalmente (línea que comienza con function , inmediatamente izaría la función como una declaración de función y lo obligaría a llamarla normalmente. Dado que ! está delante de ella, eso permite que el compilador la evalúe como una función expresión , que se puede invocar inmediatamente. El signo de exclamación aquí es el booleano not . Los paréntesis o un signo más también funcionarían.
Este sería el código equivalente:
(e,n,t) => { /** */ }(window, angular, jQuery);como lo haría
(function (e,n,t) { /** */ })(window, angular, jQuery);ya que el paréntesis hará que la línea también se evalúe como una expresión.
La función anónima se define y luego se llama con la window, angular, jQuery , que se convierte en e,n,t dentro del cuerpo de la función.
Nota al margen: no recomendaría escribir funciones como esta, ya que es una sintaxis poco común
simplemente dígale al js que ignore esta función y
lo hace indefinido así:
function Demo(){ console.log('log something');}La salida será:
registrar algo
Pero si pones un ! Antes de la función el resultado sería:
La demostración no está definida