js 中 (function($){...})(jQuery) 含义
js中定义函数常用写法是
function name(arg){ //arg则是匿名函数的参数。
//...
}
调用函数时的写法是:
name(arg);
============================================================
在js中不方法名的写法(就是匿名函数)//arg则是匿名函数的参数。
?function(arg){
?? ?//....
}
匿名函数调用的的写法为
(function(arg){
//...
})(param) //param就是传入的实参(传入的参数值)
=======================================================
所以?
(function($){...})(jQuery)
就是定义一个匿名函数function($),函数要求传入的类型是jquery对象。
然后调用这个函数,向里面传值jquery对象:(function($){...})(jQuery)
等价于
function name(jquery){
//...
};
name(param);
------------------------------------------------------------------------
备注:这里jquery作为实参而不是使用$是为了避免和其他将$作为标志的函数冲突,$作为形参,只作用于函数内部,不会对外部产生影响。
-========================================
关于$(function(){})
起因今天一个非前端同事在看我之前写的代码的时候,问我$(function(){})这是什么意思。
我愣了,啊,这不就是页面加载完才会调用的一个方法吗。
其实,$(function(){})是jquery里面的一个写法,是$(document).ready(function(){})的简写,类似于原生js中的DOMContentLoaded事件。当页面DOM树加载完毕之后触发。注意的是它是dom数加载完毕,并不是页面所有资源加载完毕,例如图片,音视频等还没加载前触发。
window.onload是js原生的页面所有资源加载完毕才会触发。
另:$(function(){})可以写多次,可以触发多次。window.onload只触发一次,后面的会顶掉前面的,只执行最后一个。
作者:蜗牛Coming
链接:http://08643.cn/p/2810a3e63826