理解javascript中的“自动执行函数”

  因为之前看了jquery的源码,对于源码中的一开始的()();不是很理解,后来到网上查了查,有了大致的了解,怕忘记了,所以记录一下。

(function(a){alert(a)})(1);
//上面的代码就是一个自动执行的js函数,和jquery中的一样。其中的
function(a){alert(a)}
//是一个匿名函数,接受一个参数。随后的(1)表示对这个匿名函数的调用,并且传递了一个参数,这与我们平常声明一个函数,并调用是一样的:
function x(a) {
alert(a);
}
x();
//现在来说一下对于这个自动执行函数我所理解的执行顺序:
//首先,第一个小括号,也就是“(function(a){alert(a)})”是一个运算符号,就像:
(1+2)*3
//一样,这样,就是把这个匿名函数给返回,同时紧跟着后面的小括号“(1)”就把它给调用了。如果我们把包裹住匿名函数的小括号给去掉的话,
function(a){alert(a)}(1);
//这样,就不会执行。这时,虽然有了匿名函数,但是并没有对这个函数的引用,后面的小括号仅仅是一个运算优先级而已,并不是对方法的执行。
//不过我们这样写就可以执行了:
+function(a){alert(a)}(1);
//或者
-function(a){alert(a)}(1);
//或者
void function(a){alert(a)}(1);
//或者
new function(a){alert(a)}(1);
//上面的写法都可以。
//前面添加的“+,-,void,new”是运算符和执行关键字,这样会强制匿名函数在声明后返回引用,而后面的小括号就是对函数的执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值