Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set a javascript variable to the return of an inline function?

I'm using the code:

var x = function() {return true;};

trying to set x to true, the return value of the function, but instead x is defined as the function itself. How can I set x as the return value of the function? I could easily code around this problem by using a non-inline function or some such, but it bugs me because I'm sure there must be a simple solution.

Thanks.

like image 828
wyatt Avatar asked Jan 19 '10 04:01

wyatt


2 Answers

The solution is to define the function and then invoke it (by adding the extra parentheses at the end):

    var x = ( function() {return true;} ) ();
like image 50
jdigital Avatar answered Oct 19 '22 23:10

jdigital


You're not executing the function, you're setting x to actually be the function.

If you had some variable y, it could take on the value of the function with something like:

var x = function(){ return true; };
var y = x();  // y is now set to true.

or alternatively execute the function in place with:

var x = (function(){ return true; })();
like image 41
Mark Elliot Avatar answered Oct 19 '22 22:10

Mark Elliot