JavaScript 中的自执行匿名函数

JavaScript 中的自执行匿名函数
格式:
(function (){
// code
})();

解释:这是相当优雅的代码,包围函数(funciton(){}) ();的第一对括号向脚本返回未命名的函数(i.e. return function (){// code } ),随后一对空括号立即执行返回的未命名函数(i.e. function (){// code } ),括号内为匿名函数的参数。
来个带参数的例子:
(function(arg){
alert(arg+100);
})(20);
// 这个例子返回 120

重要用途:

匿名自执行函数有很多用处,主要是用于封装,比如看jquery或者dojo的源码发现它们都是封装在匿名自执行函数中,这样就可以做到页面加载时自动初始化(example),而且向外公开它想公开的属性和方法,而用到的临时变量可以安全封闭在匿名函数内。
可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许

(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');

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值