我正在阅读“Javascript:权威指南”,6E,我遇到了这个例子:
var cookies = (function() {
var cookies = {};
var all = document.cookie;
if ( all === "" )
return cookies;
var list = all.split("; ");
for ( var i = 0; i < list.length; i++ )
{
var cookie = list[ i ];
var p = cookie.indexOf( "=" );
var name = cookie.substring( 0, p );
var value = cookie.substring( p + 1 );
value = decodeURIComponent( value );
cookies[ name ] = value;
}
return cookies;
}());
我可以看到他在这里做了什么;他创建了一个函数并立即调用它。我只是不明白为什么他会在这种情况下这样做。我以前在 jQuery 中看到过隐藏“$”运算符的这个习惯用法,但他没有在这里隐藏任何东西;他创建的唯一变量是“cookies”,这就是他要填充的变量。我无法弄清楚这与以下有何不同:
var cookies = {};
var all = document.cookie;
if ( all !== "" )
{
var list = all.split("; ");
for ( var i = 0; i < list.length; i++ )
{
var cookie = list[ i ];
var p = cookie.indexOf( "=" );
var name = cookie.substring( 0, p );
var value = cookie.substring( p + 1 );
value = decodeURIComponent( value );
cookies[ name ] = value;
}
}
除了在全球范围内引入“全部”吗?是否有一些更深层次的角落案例他正在回避这个我只是不知道的特定示例?