首先要说明的,下面这种方式是对的,虽然不知道为什么,很奇怪为什么可以先使用,再定义,希望有了解的人可以给个说法.
<SCRIPT LANGUAGE="JavaScript">
hello('www.openj.cn');
function hello(name){alert("hello " +name)};
</SCRIPT>
本文首发于 http://blog.openj.cn
下面的这种定义函数方式,对于写一些比较复杂的代码比较合适,特别是有返回值时,函数名可以直接被赋予返回值,有时这会带来很大的方便.
<SCRIPT LANGUAGE="JavaScript">
var hello = function(name){alert("hello "+name)};
hello('www.openj.cn');
</SCRIPT>
下面这种方式是错的,在此处不能先使用后定义,可能是因为函数名此时也当做变量名吧.对变量无法实现先使用后定义.这只是猜测,希望有明白人能给一个权威说话.
<SCRIPT LANGUAGE="JavaScript">
hello('www.openj.cn');
var hello = function(name){alert("hello "+name)};
</SCRIPT>
var theName = (function(){
var _surname = function(){})();
参考:http://www.blogjava.net/zkjbeyond/archive/2006/04/06/39514.html
http://www.blogjava.net/itspy/archive/2007/10/29/156752.html