javascript之函数直接量(function(){})()

  种语法是什么意思(function(){})()

  如下例:

  <script language="JavaScript">

  (function(){

  document.write("some script code");

  })()

  </script>

  <script language="JScript" type="Text/JScript">

  <!--

  var a=(function(s){return s})("abc");

  alert(a);

  var b=function(s){return s};

  alert(b("abc"));

  //-->

  </script>

  引用

  这个如何解释呢

  大家应该记得这种写法

  var a=function (){}

  那么怎么运行a呢

  那么就是a()

  同样的道理

  我们不通过a这个变量来存那么是如何写法

  就是

  function(){}()

  但是你会发现这样是错的

  因为解析引擎解析的时候,解析的时候发现}判断到了函数结束了

  并没有把那个函数作为块来运行

  那么加上()是强制把function那块作为块

  by flashsoft

  引用

  应该叫函数直接量。

  function f(x) {return x*x;}

  var f=function(x) {return x*x;} ----此种写法定义的函数称为函数直接量,是定义函数的一种方法。他是一个表达式而不是语句。此函数是匿名函数,f只是对函数的引用,不是函数名。

  函数直接量可以存储一个变量中或传递给其他的函数甚至被“直接调用”。

  var t=(function(x) {return x*x;})(10);//定义一个函数并且调用此函数。

  --------以上引自《javascript权威指南》by lyxscn

  引用

  就像java的匿名类一样,定义并执行一个函数