javascirpt匿名自执行函数

本文解析了JavaScript中自执行匿名函数的作用与用途,包括其如何避免变量冲突及实现自调用的方式。通过实例展示了这一特性在jQuery中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文出处: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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值