转载自:https://www.cnblogs.com/ClareZjy/p/6365891.html
零:介绍
匿名函数的基本形式为(function(){...})();
前面的括号包含函数体,后面的括号就是给匿名函数传递参数并立即执行之
匿名函数的作用是避免全局变量的污染以及函数名的冲突
小括号的作用
小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function 对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。
简单来说就是小括号有返回值,也就是小括号内的函数或者表达式的返回值,所以说小括号内的function返回值等于小括号的返回值
举例:
(function(){
console.log('hello');
})();
壹:实际遇到的情况
在学习RequireJS的时候,遇到下面这种写法
require.config({
paths : {
"jquery" : ["http://libs.baidu.com/jquery/2.0.3/jquery"]
}
})
require(["jquery","js/a"],function($){
$(function(){
alert("load finished");
})
})
上面的function($)..这种形式又如何理解呢
(function($){...})(jQuery)其实是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery也是一个道理。
上面的$(function(){..又如何理解呢
原来 $(function(){…}); 也可以写作 jQuery(function($) {…}); , 其实就是$(document).ready(funcrtion{...}); 的简写
而$(document).ready(funcrtion{...})这是w3c的规范,参考http://www.w3school.com.cn/jquery/jquery_syntax.asp