I have seen many js frameworks (including jquery) using closure around their main function scope. For example,
var obj = (function(){
return {
test : function(){
alert('test');
}
}
})();
obj.test()
jquery source, http://code.jquery.com/jquery-1.7.2.js
Whats the need that extra 'closure' around the 'function'? Or whats the difference if we are using it like,
var obj = function(){
return {
test : function(){
alert('test');
}
}
}();
obj.test()
Both have the same behavior and function definition itself puts all the local variable inside a new scope... so why the extra closure?
It adds the "big"object\library functions, and not adding them to the global object.
The two options you pasted are just like the difference between:
var foo = (2);
var foo = 2;
No difference...
Update:
Now I undersatnd your question, parentheses don't create new scope in javascript, only functions.