jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解

本文介绍了JavaScript中匿名函数及闭包的应用,详细解释了如何利用匿名函数创建闭包以实现变量私有化,并展示了四种不同的文档加载完成后的回调函数写法。

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

1、

(function($) {…})(jQuery);

a) 原理:
这实际上是匿名函数,如下:
function(arg){…}
这就定义了一个匿名函数,参数为arg
而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:

(function(arg){…})(param)

这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个

(function($){…})(jQuery)

之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于

funtion output(s){…};
output(jQuery);

或者

var fn=function(s){…};
fn(jQuery);

b)作用(非常有用):
这种写法的最大好处是形成闭

(function($) {…})(jQuery)

定义的函数和变量只能在此范围内有效。
形成是否函数函数、私有变量的概念。比如:

var i=3;  
function init(){  
    alert("外层init:"+i);  
}  
(function($) {  
    var i=2;  
    function init(){  
        alert("内层init:"+i);  
    }  

    init();  
})(jQuery);  
init();  

执行结果:
内层init:2
外层init:3

2

$(function(){…});

jQuery(function($) {…}); 

$(document).ready(function(){…});

$().ready(function(){…});

这四个的作用是一样的,文档载入完成后执行的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值