|
如下例:
<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>
引用
這個(gè)如何解釋呢
大家應(yīng)該記得這種寫法
var a=function (){}
那么怎么運(yùn)行a呢
那么就是a()
同樣的道理
我們不通過(guò)a這個(gè)變量來(lái)存那么是如何寫法
就是
function(){}()
但是你會(huì)發(fā)現(xiàn)這樣是錯(cuò)的
因?yàn)榻馕鲆娼馕龅臅r(shí)候,解析的時(shí)候發(fā)現(xiàn)}判斷到了函數(shù)結(jié)束了
并沒(méi)有把那個(gè)函數(shù)作為塊來(lái)運(yùn)行
那么加上()是強(qiáng)制把function那塊作為塊
by flashsoft
引用
應(yīng)該叫函數(shù)直接量。
function f(x) {return x*x;}
var f=function(x) {return x*x;} ----此種寫法定義的函數(shù)稱為函數(shù)直接量,是定義函數(shù)的一種方法。他是一個(gè)表達(dá)式而不是語(yǔ)句。此函數(shù)是匿名函數(shù),f只是對(duì)函數(shù)的引用,不是函數(shù)名。
函數(shù)直接量可以存儲(chǔ)一個(gè)變量中或傳遞給其他的函數(shù)甚至被“直接調(diào)用”。
var t=(function(x) {return x*x;})(10);//定義一個(gè)函數(shù)并且調(diào)用此函數(shù)。
--------以上引自《Javascript權(quán)威指南》by lyxscn
引用
就像Java的匿名類一樣,定義并執(zhí)行一個(gè)函數(shù)
JavaScript技術(shù):javascript之函數(shù)直接量(function(){})(),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。