如何理解temp = ( function(){ return 'abc' } )()
其实就是把运行结果返回给前面这个变量。
例如:
temp = ( function(){ return 'abc' } )()
其运行结果就是temp='abc',
相当于:
function fun()
{
return 'abc';
}
temp = fun();
alert(temp);
弹出来的结果就是abc。
第二个括号也可以放置参数,例如:
var temp=(function(str){alert(str);return str;})('出来!');
alert(temp);
将会弹出两个“出来!”的结果,其中后面这个括号里的是传入第一个括号里函数的参数,
当然在这个函数中如果没有“return str;”这个语句,变量temp是没有值的。
相当于:
var temp=fun('出来!');
function fun(str){
alert(str);
return str;
}
(function(){var i=100;alert(i)})()
这种写法就是传说中的匿名函数,它的好处是函数内部定义的对象在函数外面永远无法访问,除此之外这个匿名函数也是不可被其它代码访问的,即使得对象之间不 容易被命名污染(在 js中很多错误是由于对象命名冲突引起的)。按照通常的写法我们会这样写function a(){var i = 100;alert(i)};a();这样写就留下了一个对象a(在不要再用的时候就成了内存垃圾)。