|
如下例:
<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的匿名類一樣,定義并執行一個函數
JavaScript技術:javascript之函數直接量(function(){})(),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。