WEB前端 -- jquery中的;(function ( $, window, document, undefined )介绍

本文解析了jQuery插件中常见的立即执行匿名函数模式,详细介绍了该模式如何避免变量冲突,提升性能,并确保插件正常运行。同时,还讨论了传递特定对象作为参数的好处。

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

 

jquery插件中我们经常看到以下这段代码

;(function ( $, window,document, undefined ){
 //函数体内具体代码
 })(jQuery, window,document);

解释:    

1.代码前面的分号,可以防止多个文件压缩合并比为其他文件的最后一行语句没加分号,而引起合并后的语法错误

2.匿名函数(function(){})(); :由于JavaScript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数.避免函数体内和外部的变量冲突.

3.$实参:$jQuery的简写,这里$接受jQuery对象,也是为了避免$变量冲突,保证插件可以正常运行.

4.window,document实参分别接受window,document对象,而且window,document对象全都是全局环境下的,而在函数体内window,document其实是局部变量,不是全局的window,document对象.好处:提高性能,减少作用域链的查询时间,若在函数体内需要多次调用windowdocument对象,这样把windowdocument对象当做参数传进去,这样做是很必要的.拖插件用不到这2个对象,那就不用传递这两个参数.

5.undefined形参:

undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,因此增加一个形参undefined

出处:http://www.58img.com/jquery/1212

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值