JS匿名执行函数 (JQuery)
2010-06-17 11:07
295 查看
刚学jquey,初看jquery源代码 发现这种结构 "()() "
Google结果:
格式:
(function(){
//代码
})();
解释:这是相当优
雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回
的未命名函数,括号内为匿名函数
的参数。
来个带参数的例子:
(function(arg){
alert(arg+100);
})(20);
这个例子返回120。
重要用途:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许。
(function(){
function $(id){
return
document.getElementById(id);
}
function
__addClass(id,className,classValue){
$(id).style.className=classValue;
}
window['mySpace']={};
window['mySpace']['addClass']=__addClass;
})();
上面的例子就可以用这
种伪命名空间封装并保护自己的所有函数、对象和变量。而且,由于它们位于同一个函数中,所以可以互相引用。为了对受保护的代码进行全局化,随后的一对括号
告诉浏览器立即执行返回的匿名函数
,而且在执行期间将__addClass()赋值给了window的一个方法,这
样在外部只能执行addClass而__addClass被保护起来了。我可以这样调用
它:mySpace.addClass('oneId','font-
width','bold');
Google结果:
格式:
(function(){
//代码
})();
解释:这是相当优
雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回
的未命名函数,括号内为匿名函数
的参数。
来个带参数的例子:
(function(arg){
alert(arg+100);
})(20);
这个例子返回120。
重要用途:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许。
(function(){
function $(id){
return
document.getElementById(id);
}
function
__addClass(id,className,classValue){
$(id).style.className=classValue;
}
window['mySpace']={};
window['mySpace']['addClass']=__addClass;
})();
上面的例子就可以用这
种伪命名空间封装并保护自己的所有函数、对象和变量。而且,由于它们位于同一个函数中,所以可以互相引用。为了对受保护的代码进行全局化,随后的一对括号
告诉浏览器立即执行返回的匿名函数
,而且在执行期间将__addClass()赋值给了window的一个方法,这
样在外部只能执行addClass而__addClass被保护起来了。我可以这样调用
它:mySpace.addClass('oneId','font-
width','bold');
相关文章推荐
- js匿名自执行函数
- js闭包的用途(匿名自执行函数,缓存,实现封装,实现面向对象)
- js的匿名函数及jQuery的图片轮播
- JS匿名自执行函数
- js自执行函数及参照jquery调用方法方式
- jquery源码学习笔记:自执行匿名函数剖析
- web性能优化之- js自定义函数延迟执行 jquery插件
- JS匿名自执行函数
- js的匿名函数定义之后立刻执行
- js中的匿名函数和匿名自执行函数
- jquery源码笔记1-匿名自执行函数
- JS中的匿名函数自执行、函数声明与函数表达式
- JQuery设置缓慢下拉大行多次执行的解决办法,以及stop()函数的简单理解
- 自执行匿名函数剖析整理
- JS自执行函数的几种写法
- 解决用jquery load加载页面到div时,不执行页面js的问题
- 判断js函数是否存在,如果存在则执行
- js获取和设置DOM样式函数cssStyle(类似于jquery的$(elem).css())
- input 使用js赋值而非手动输入input,并执行input事件对应函数
- js立即执行函数简介与实现方式