Saturday, 29 October 2016

Awkward way of executing JavaScript code




In the Google tutorial for implementing Google+ sign-in in Flask application, I discovered that the developer often uses an awkward way of executing JavaScript code:



Instead of doing



var a = foo(bar);


I see this:



var a = (function() {
return foo(bar);
})();


What is the reason to do it the weird way?


Answer



This is a poor example. Consider the following:



var a = (function(){
var ret = {};
ret.test = "123";
function imPrivate() { /* ... */ }
ret.public = function() { imPrivate(); }
return ret;
})();


a will contain the varible test and the function public, however you can not access imPrivate. This is the common way to handle public vs private variables;



See Why is this function wrapped in parentheses, followed by parentheses? for more info.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...