文档章节

jQuery源码学习

L
 LM_Mike
发布于 2017/04/26 17:15
字数 337
阅读 15
收藏 0

1. 在慕课网学习jQuery源码时,看到下面这段代码

;(function(global, factory) {
    factory(global);
}(typeof window !== "undefined" ? window : this, function(window, noGlobal) {
    var jQuery = function( selector, context ) {
		return new jQuery.fn.init( selector, context );
	};
	jQuery.fn = jQuery.prototype = {};
	// 核心方法
	// 回调系统
	// 异步队列
	// 数据缓存
	// 队列操作
	// 选择器引
	// 属性操作
	// 节点遍历
	// 文档处理
	// 样式操作
	// 属性操作
	// 事件体系
	// AJAX交互
	// 动画引擎
	return jQuery;
}));

直接看这段代码有点难看,其实是一个自执行的闭包函数,下面拆开看

(function(global,factory){
    factory(global);
}(param1,param2));

后面那段代码就是负责返回param1和param2的值

(typeof window !== "undefined" ? window : this, function(window, noGlobal) {
    var jQuery = function( selector, context ) {
		return new jQuery.fn.init( selector, context );
	};
	return jQuery;
})

//举例返回(window,jQuery);

根据上面举例返回的,那么一种完整的情况代码如下,但是

;(function(global, factory) {
    factory(global);
}(window,jQuery);
//其中参数2 jQuery在其返回的函数里早已进行一系列操作

2. jQuery上层ajax函数,$.get和$.post

jQuery.each( [ "get", "post" ], function( i, method ) { 
    jQuery[ method ] = function( url, data, callback, type ) {  
 //这里jQuery[method]遍历后就是→$.get和$.post,对象参数名就是字符串
		// Shift arguments if data argument was omitted
		if ( jQuery.isFunction( data ) ) {  //这种情况是$.get的情况,不需要data,后面的参数都向前移以为
			type     = type || callback;
			callback = data;
			data     = undefined;
		}
		return jQuery.ajax({
			url: url,
			type: method,
			dataType: type,
			data: data,
			success: callback
		});
	};
});

© 著作权归作者所有

共有 人打赏支持
L
粉丝 1
博文 269
码字总数 41374
作品 0
深圳
私信 提问
分享26本关于Jquery的学习书籍(免费下载)

分享26本关于Jquery的学习书籍(免费下载) 1、精通JavaScript+jQuery 2、网友small6分享锋利的jQuery实例源码 3、网友small6分享jQuery权威指南配套源代码 4、犀利开发jQuery内核详解与实践...

邓剑彬
2012/11/30
3.3K
8
6 个精彩的 jQuery 游戏开发教程

随着HTML5和浏览器技术的发展,越来越多的应用和游戏开始使用HTML5/JavaScript或jQuery进行重写。 本文带来了6个教程,帮助你使用jQuery来开发游戏。 1. Sumon数字游戏 学习如何使用jQuery开...

oschina
2012/06/22
2.5K
5
10 个非常酷的基于jQuery的菜单效果插件

除了直观的界面效果外,炫酷的网站导航菜单或右键菜单也能为访问者带来眼前一亮的感觉。本文为你带来10个非常酷的基于jQuery的菜单效果插件。 1. 右击菜单 一个创建右击菜单的插件,简洁且易...

红薯
2011/12/20
3.9K
4
10 款提高开发效率的 jQuery/CSS3 组件

前端开发是一项十分繁琐而又耗体力的工作,如何更有效率的开发我们的应用,很多人会选择适当地使用一些jQuery插件。今天就要给大家分享10款可以提高开发效率的jQuery/CSS3组件。部分插件可以...

yykj
2013/10/29
539
2
从零玩转jQuery-初识jQuery

课前须知: 学习jQuery前必须先掌握JavaScript jQuery虽然属于前端技术, 但是对于后端人员(诸如Java、PHP等,也需要掌握) jQuery是什么? jQuery是一款优秀的JavaScript库,从命名可以看出jQu...

极客江南
2018/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【转】初次提交项目到github

第一步:安装Git 第二步:在自己的工程目录下右键鼠标 选择 Git Bash Here 执行命令 git init 来创建一个本地代码仓库 执行命令 git add . 来把所有文件添加到仓库 执行命令 git commit -m ...

覃光林
14分钟前
2
0
Zend Studio使用教程:使用PHPUnit检测代码(五)

本教程演示如何在代码上创建和运行PHPUnit Test。您将学习如何创建和运行包含许多测试用例的单个单元测试用例和测试套件。 单元测试是一个测试代码的过程,以确保源代码的各个单元正常工作,...

电池盒
14分钟前
2
0
前端 联想搜索下拉框

data.result 为联想搜索出来的数组 innerhtml += "<ul style='list-style:none;font-size:13px;margin: 0px;padding: 5px;'>";for (var j = 0; j < data.result.length; j++) { var r......

yan_liu
15分钟前
2
0
预计2019年发布的Vue3.0到底有什么不一样的地方?

摘要: Vue 3.0预览。 原文:预计今年发布的Vue3.0到底有什么不一样的地方? 作者:小肆 Fundebug经授权转载,版权归原作者所有。 还有几个月距离 vue2 的首次发布就满 3 年了,而 vue 的作者...

Fundebug
15分钟前
1
0
跟我学Spring Cloud(Finchley版)-11-Feign常见问题总结

本文总结Feign常见问题及解决方案。 一、FeignClient接口如使用@PathVariable ,必须指定value属性 代码示例: @FeignClient("microservice-provider-user")public interface UserFeignCli......

周立_ITMuch
16分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部