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那块作为块引用 
应该叫函数直接量。 

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的匿名类一样,定义并执行一个函数 

id="iframeu2261530_0" src="http://pos.baidu.com/hcnm?sz=680x200&rdid=2261530&dc=2&di=u2261530&dri=0&dis=0&dai=2&ps=0x0&coa=at%3D3%26rsi0%3D680%26rsi1%3D200%26pat%3D6%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D1%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D14%26rss2%3D%2523000000%26titSU%3D0%26ptbg%3D90%26piw%3D0%26pih%3D0%26ptp%3D0&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1477552701770&ti=javascript%E4%B9%8B%E5%87%BD%E6%95%B0%E7%9B%B4%E6%8E%A5%E9%87%8F(function()%7B%7D)()_%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86_%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6&ari=2&dbv=2&drs=1&pcs=1349x683&pss=1349x2945&cfv=0&cpl=4&chi=1&cce=true&cec=GBK&tlm=1477332850&rw=683&ltu=http%3A%2F%2Fwww.jb51.net%2Farticle%2F10453.htm&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DoZ2xiD64VQprUpyOgb5V5-alhH-RCjQXEApc03ZKpN7RFMFV3WJZ6MXiICZtPZge%26wd%3D%26eqid%3Da7dc86040000d567000000025811aa3a&ecd=1&psr=1366x768&par=1366x768&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1477552702&qn=fd689f259ab21b67&tt=1477552701751.169.169.171" width="680" height="200" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="display: block; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;">
种语法是什么意思(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的匿名类一样,定义并执行一个函数 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值