js的自动用匿名函数

在看jquery源码的时候第一步就是遇到这个代码

(function( window, undefined ) {

    // jquery code

})(window);

接触js不是很多会很费解,自己写了个以下的匿名函数:

 

<script type="text/javascript">
	(function(x,y){
		alert(x+y);
		return x+y;
	})(1,2);
</script>

 发现它是可以执行的。稍微研究了下分享如下:

 

我们通常定义函数都是

function add(x,y){
		alert(x+y);
	}
var a = function add(x,y){
		alert(x+y);
	}

 这两种方式,不过,在js里面有匿名函数的概念。就比如

 

 

function(x,y){
		alert(x+y);
		return x+y;
	}

 就是一个匿名函数,如果a = function(){}这种形式定义函数,那么a()就能够执行函数,因为a是这个函数的一个引用,那么匿名函数后面直接加括号能不能执行呢?结果是不能执行。要想执行,可以选择的一种方法就是把匿名函数用括号括起来,把它当作表达式来处理,这样后面加括号会执行前面的表达式。这样就出现了

 

 

(function(x,y){
		alert(x+y);
		return x+y;
	})(1,2);

 这种形式。

 

 

在js里面括号可以把括号里面的内容看成是表达式,这个也是很特有的,不过在eval解析JSON 时会经常用到,

function strToJson(str){
     // eval 中字符串两旁加了强制运算符()
     var json = eval('(' + str + ')');
     return json;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值