jquery源码中涉及了大量原生js中的知识和概念,文章是我在学习两者的过程中进行的整理和总结,有不对的地方欢迎大家指正。

本文使用的jq版本为2.0.3,附上压缩和未压缩版本地址:

http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.js

http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js

查看源码可以发现整体结构是这样:

(function( window, undefined ) {
// code
})( window );

要理解这种写法,需要了解js中定义函数有两种方式:

1.函数声明

function functionName(){
// code
}

2.函数表达式

var functionName = function(){
// code
}

这种方式定义的函数也叫匿名函数(没有函数名),可以看作是将一个函数表达式赋值给一个变量。

定义好函数后调用它:

functionName();

到这里我们对照源码可以发现,functionName被其对应的值(表达式)替换后,即为:

(function(){})();     //不加括号会报错

​ 这句代码的意思就是定义了一个匿名函数并立即执行了它。

再看一个例子帮助理解,在给函数传参的时候

var num = 1;
functionName(num);
functionName(1);

参数可以传变量或者直接传值(表达式),同理,函数名也可以被替换为其对应的值(函数表达式)。

好了,第一篇就写到这里,有空再继续往下总结。

最新文章

  1. Python演讲笔记1
  2. 【转】SQL Server中的事务与锁
  3. Delphi Berlin 10.1 for iOS 成生 info.plist 顺序改变了
  4. static_cast, dynamic_cast, const_cast探讨
  5. [Everyday Mathematics]20150114
  6. jquery 图片放大
  7. Css基础-类选择器
  8. Dapper simplecrud的使用
  9. 使用uWSGI+nginx部署Django项目
  10. Maven项目搭建(三):Maven直接部署项目
  11. 最短路和次短路问题,dijkstra算法
  12. JAVA_SE基础——42.final修饰符
  13. 指针数组&数组指针
  14. 微信网页授权获取用户openid及用户信息
  15. SqlServer中的事务使用
  16. javascript map forEach filter some every在购物车中的实战演练区分用法
  17. 一个漂亮的 PlaceHolder
  18. React-Native-Android-Studio整合开发+环境配置+官方实例
  19. Linq相关
  20. 安装解压版的mariadb

热门文章

  1. rdtsc获取时间统计程序的运行效率
  2. [Qt] 界面美化 [2013-06-17更新](转载)
  3. 关于c语言中的字符数组和字符串指针
  4. 算术编码Arithmetic Coding-高质量代码实现详解
  5. 关于yum仓库的中的软件包下载
  6. a cold welcome
  7. lintcode:删除链表中指定元素
  8. TestDirector安装配置
  9. nodejs 操作mysql
  10. TPaintBox的前世今生