浏览 3441 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-25
最后修改:2008-12-25
自调用函数(Self-invoking Functions)自调用函数也是匿名函数的一种表现形式,这个函数在定义之后,直接调用。如下 ( function(){ alert('haha'); } )() 看起来还挺怪异,不过确实很简单。 自调用函数很方便使用,可以不用定义更多的全局变量。还有个好处,就是这个函数不能被执行两遍。真是非常适合做初始化的工作。许多著名的javascript库特别多的源码中使用了这个功能,例如本人喜欢的Jquery.
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-25
谁说不能执行两边
(function(){temp=arguments.callee;alert("haha")})();temp(); 这个优点主要是里面的声明不会污染window,隶属于执行的scope就是执行期环境 |
|
返回顶楼 | |
发表时间:2008-12-25
呵呵。恩。说的不严谨。我想表达的意思是,这个自定义函数特别方便做初始化的功能。你的这个写法本身temp本身就不规范。为什么要这么写?当全局变量了?这样的写法本身就使代码不规范了。
|
|
返回顶楼 | |
发表时间:2008-12-26
afcn0 写道 谁说不能执行两边
(function(){temp=arguments.callee;alert("haha")})();temp(); 这个优点主要是里面的声明不会污染window,隶属于执行的scope就是执行期环境 这个代码在ie7下执行两遍。firefox里不执行。 |
|
返回顶楼 | |
发表时间:2008-12-29
可以这样理解不?因为没有句柄来接收这个函数,因此只能执行一次?之后也没有办法调用吧。
|
|
返回顶楼 | |
发表时间:2009-02-18
看到这个让我解决了一个ajax封装的问题!谢谢!
|
|
返回顶楼 | |