Issue
I apologize for my stupid question, I am not good at javascript and angularjs. I've been referencing the code of some projects, and I'm really confused about this, what it actually is !function(a,b,c){}(x,y,z). I have never seen it before. I am not good at javascript nor angularjs. Thanks for all the help!
!function (e, n, t) {
"use strict";
// code
}(window, angular, jQuery)
Solution
It's a hacky way to immediately execute an anonymous function. If you were to define it normally (line starting with function, then it would immediately hoist the function as a function statement and force you to call it normally. Since the ! is in front of it, that lets the compiler evaluate it as a function expression, which can be invoked immediately. The exclamation mark here is the boolean not. Parenthesis or a plus sign would also work.
This would be equivalent code:
(e,n,t) => { /** */ }(window, angular, jQuery);
as would
(function (e,n,t) { /** */ })(window, angular, jQuery);
since the parenthesis will make the line be evaluated as an expression as well.
The anonymous function is being defined, and then called with the parameters window, angular, jQuery, which become e,n,t inside the function body.
Side note: I would not recommend writing functions like this, since it's uncommon syntax
Answered By - A Herbig
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.