javascirpt匿名自执行函数

转载 2012年03月29日 19:52:06

原文出处:http://ce.sysu.edu.cn/hope2008/worklist/ShowArticle.asp?ArticleID=9278

一直没完全看懂jquery.js的代码结构,现在了解了。自执行函数,原来还有这么个东西,js果然博大精深啊!

-------------仍然是分割线--------------------------------------------------------------------------------------------------------

 看很多的网站的js文件,要面对的第一函数通常是匿名自执行函数,形如(function(){})(),它的作用有两个,一是匿名,在java中有匿名内部类,作用类似。匿名的意思是没有声名函数的名字,这样就使得函数外部无法访问匿名自执行函数的内部,防止函数之间变量命名的相互干扰,比如说有两个人写了两个js,放在同个网页中,如果它们没有用匿名函数包裹,这两个js文件之间的函数会互相调用,导致错误的产生。

       那么如何访问匿名函数里面的函数呢?通常是在里面的函数或变量前加上window,这样该函数或变量就成为全局的了,在同个页面,即使是不同我js文件,也可以访问到,所以只要某个页面中加入jquery.js,那么其它js文件就可以用jquery(*)来访问jquery.js中的函数。

       匿名自执行函数的另外一个作用是自执行,其实只要在js文件中写在任何代码,只要不包括function类型,它都会执行,它的作用有点像onload,不过onload是在页面载入完后才执行,它不用,所以如果它要调用某个页面元素,一定要将这个页面元素放在匿名自执行函数之前,否则会产生错误。

       在jquery中,匿名自执行函数嵌套了匿名自执行函数,形如:

(function(){
    var a=function(){};
    (function(){
    a()
    })();
})();

这样写的目前是实现自调用,匿名自执行函数里的匿名自执行函数可以调用上级的函数。这也有点像java,类内的变量和方法对内部类是透明的。所以a=function中a之前不用加window。


相关文章推荐

javascirpt函数在IE下不支持的小结

// ============ isArray ===============// // isArray function isArray(value){ return Object.p...

javascirpt 的一些在IE下不支持的函数小结

看红宝书看了两天,发现原来好多js的方法都是在IE9+才支持,连IE8都不支持。。想要实现这些方法只能自己写,总结下。 // ============ isArray ======...
  • haojie5
  • haojie5
  • 2012年09月20日 14:44
  • 10338

JavaScript 匿名函数几种执行方式

参考1、 javascript自执行匿名函数  http://blog.csdn.net/jbgtwang/article/details/6608265 其中说到了 self-executin...

jquery源码笔记1-匿名自执行函数

//格式(function(){ })();//作用:匿名函数中的函数变量和函数在函数外部访问不到//那如果想要外部访问到怎么办?//在jquery源码中是这样做的:把要暴漏的变量或函数挂载到wind...

javascript自执行匿名函数

格式:      (function(){          //代码        })();解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一...

Javascript自执行匿名函数(function() { })()的原理浅析

Javascript自执行匿名函数(function() { })()的原理浅析
  • S257111
  • S257111
  • 2016年12月01日 17:10
  • 206

Javascript的匿名函数与自执行

摘要: 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。匿名函数:就是没有函数名的函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途...

Javascript中的自执行匿名函数

格式: (function(){ //代码 })(); 解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的...
  • hety119
  • hety119
  • 2015年12月14日 15:42
  • 1579

自执行匿名函数剖析整理

格式:       (function(){           //代码         })(); 解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function...

自执行匿名函数剖析

引入 在很多js代码中我们常常会看见这样一种写法: (function( window, undefined ) { // code })(window); 这种写法我们称之为自...
  • wxw_317
  • wxw_317
  • 2015年11月18日 15:57
  • 829
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascirpt匿名自执行函数
举报原因:
原因补充:

(最多只允许输入30个字)