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?