您的位置:首页 > Web前端 > JQuery

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');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: