一、初始化JQuery对象
DOM加载完成时运行代码
1.$(document).ready(function(){ 全写
// 在这里写你的代码...
});
2.jQuery(function(){
// 在这里写你的代码...
}); 3.$(function(){ 简写方法,$等价于jQuery
// 在这里写你的代码...
});
以上三个等价,这个函数初始化为一个jQuery对象:$(obj); 都是在DOM加载完成时运行代码
二、(funtion(){})();立即执行函数;相当于先申明一个函数,声明完后直接调用;顺序加载JS时,加载到时执行
(function(){
//要执行的代码
})(para)匿名方法
而调用函数 时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:(function(arg){...})(param)
就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数
(funtion(str){alert(str)})("output"));相当于:funtion OutPutFun(str){alert(str);};OutPutFun("output");
匿名方法:只调用,使用一次的方法
三、延伸:
(function($) {
//代码
})(jQuery)什么意思?
初始化JQuery对象,其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象。
**************************************************************************
简单理解是
(function($){...})(jQuery)用来定义一些需要预先定义好的函数
注意:写成 var countdown = function(){}的话在 jQuery对象函数中不能被调用 所以顶定义的函数必须是公共的,去掉 var;
$(function(){ })则是用来在DOM加载完成之后运行\执行那些预行定义好的函数.
**************************************************************************
总结:
jQuery(function(){ });用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因 为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。
(function(){ })(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码 请小心使用。
js匿名对象介绍:
js的匿名函数很强大,
(function(paramA){...})(b);(匿名函数在js中因为也是对象,所以需要双括号包裹起来)
这个结构就说明了,我使用了匿名函数,并且立刻执行这个匿名函数.
再分析(function(paramA){...})(b)这种格式,匿名函数部分参数paramA是个形参,用在匿名函数内部作为值的调用,而b这个参数就是个实参,是将b这个值代入到函数内部.