匿名函数和var test = function(){}的顺序问题

各位大大,我有个问题不解.

一个匿名函数
code="js"{
alert("hello");
})();
[/code]

随后有一个函数
[code="js"]
var test = function(){alert("test");}
[/code]

这样是没问题的.

但是如果顺序颠倒一下, 就出错了.
请问这是怎么个情况,谢谢!


自问自答,修改anonym函数为
code="js"{
alert("hello");
}());
[/code]
就行了. 一点点细微的差别~ . 失之毫厘,缪之千里.


不过原理还是不清楚,
如果我在先定义一个类:
[code="js"]
var myObj = function()
{}
[/code]

随后是个匿名函数
code="js"{
alert(x);
}(1));
[/code]

最后,我期望得到myObj的实例,不行!
[code="js"]
var myobj = new myObj();
[/code]
说它不是个构造函数...

呵呵~越来越有意思了~

下面这个情况一样,加上分号

var myObj = function()
{}[color=red];[/color]

只是因为你没加上分号

//这个分号很重要
var test = function(){alert("test");}[color=red];/color{
alert("hello");
})();

这么写就没问题了