A Better inline javascript function?
Is there a better way to write this code? i tried function(){}(); but i got an error so i had to use DUMMY as a placeholder var. The function should run before alert b does. Whats a better way of writing this?
var DUMMY = function(){
var names = "i dont want to be seen";
alert('A');
};开发者_StackOverflow社区 DUMMY();
alert('B');
I actually use the syntax you say doesn't work all the time. The thing is, you need to either store the return value, or make it an expression. So either:
var foo = function() { return false; }();
or
(function() { return false; }());
Note the difference between Pointy's answer on this one. The expression is the entire function (including the calling ()
), not just the function declaration. Either way will do the same thing. Use what you feel is more readable (Personally I like this syntax better, but to each their own)...
You can use parentheses to make it look like an expression:
(function() { alert("hi"); })();
I recently saw this (at the TXJS conference):
!function() { alert("hi"); }();
The leading "!" serves the same purpose: the parser sees an expression instead of a function definition statement.
For now the best is
(()=>{})()
or even
!()=>{}
精彩评论