在看javascript的源码时,经常看到有以下写法,
var Point;
(function()
{
Point = function (x, y)
{
this.x = x;
this.y = y;
};
})();
请教各位,(function(){})(); 这样的写法是什么意思? 后面的原理是什么?
(function() { Point = function (x, y) { this.x = x; this.y = y; }; })//这个是匿名方法,相当于function A()相当于function A()中的A ()//这个里面是参数列表,但这个函数参数为空而已所以直接(),A();
//例如:我要用一个函数
function A(a,b)
{return a+b}
var a=A("that","ok!");
//同理使用匿名函数可以这样写
var b=function(a,b)
{return a+b}("that","ok!");
//同理使用匿名函数可以这样写
var b=function(a,b)
{return a+b}("that","ok!");
上面这个可以理解。 那为什么匿名函数还需要再加上一层()? 为什么不是
var b=( function(a,b)
{return a+b}) ("that","ok!");
还请指教!
function(){}是一个匿名函数 用括号括起来后边再加()是调用
就是声明了一个匿名函数并且立即调用。
作用一般是为了产生一个闭包。
关注学习。。。。
理解了闭包,这个就不难理解。
谢谢,对脚本还不是太熟。有什么好资料?
@用情: 一楼介绍的“汤姆大叔的博客”就很不错啊。
http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html
@用情: javascript王者归来,javascript语言精粹!在网上都可以下载到的!!