模拟JQuery的实现:
1、起源—原型继承
var $ = jQuery = function(){}
jQuery.fn = jQuery.prototype = {
jquery: "1.3.2", //原型属性
size: function() { //原型方法
return this.length;
}
}
2、生命—返回实例
①、第一步
var $ =jQuery = function(){
return new jQuery(); //返回类的实例
}
jQuery.fn = jQuery.prototype = {
jquery: "1.3.2",
size: function() {
return this.length;
}
}
②、第二步
var $ =jQuery = function(){
return jQuery.fn.init(); //调用原型方法init()
}
jQuery.fn = jQuery.prototype = {
init : function(){ //在初始化原型方法中返回实例的引用
return this;
},
jquery: "1.3.2",
size: function() {
return this.length;
}
}
3、学步—分隔作用域
①、第一步
var $ =jQuery = function(){
return jQuery.fn.init();
}
jQuery.fn = jQuery.prototype = {
init : function(){
this.length = 0;
this.test = function(){
return this.length;
}
return this;
},
jquery: "1.3.2",
length: 1,
size: function() {
return this.length;
}
}
测试结果:
alert( $().jquery ); //返回"1.3.2"
alert( $().test() ); //返回0
alert( $().size() ); //返回0
②、第二步
var $ =jQuery = function(){
return new jQuery.fn.init();
}
jQuery.fn = jQuery.prototype = {
init : function(){
this.length = 0;
this.test = function(){
return this.length;
}
return this;
},
jquery: "1.3.2",
length: 1,
size: function() {
return this.length;
}
}
测试结果:
alert( $().jquery ); //返回undefined
alert( $().test() ); //返回0
alert( $().size() ); //抛出异常
4、生长—跨域访问
var $ =jQuery = function(){
return new jQuery.fn.init();
}
jQuery.fn = jQuery.prototype = {
init : function(){
this.length = 0;
this.test = function(){
return this.length;
}
return this;
},
jquery: "1.3.2",
length: 1,
size: function() {
return this.length;
}
}
jQuery.fn.init.prototype = jQuery.fn; //使用jQuery的原型对象覆盖init的原型对象
测试结果:
alert( $().jquery ); //返回"1.3.2"
alert( $().test() ); //返回0
alert( $().size() ); //返回0
5、成熟—选择器
var $ =jQuery = function(selector, context ){ //定义类
return new jQuery.fn.init(selector, context ); //返回选择器的实例
}
jQuery.fn = jQuery.prototype = { //jQuery类的原型对象
init : function(selector, context){ //定义选择器构造器
selector = selector || document; //设置默认值为document
context = context || document; //设置默认值为document
if ( selector.nodeType ) { //如果选择符为节点对象
this[0] = selector; //把参数节点传递给实例对象的数组
this.length = 1; //并设置实例对象的length属性,定义包含元素个数
this.context = selector; //设置实例的属性,返回选择范围
return this; //返回当前实例
}
if ( typeof selector === "string" ) { //如果选择符是字符串
var e = context.getElementsByTagName(selector); //获取指定名称的元素
for(var i = 0;i<e.length;i++){ //遍历元素集合,并把所有元素填入到当前实例数组中
this[i] = e[i];
}
this.length = e.length; //设置实例的length属性,即定义包含元素的个数
this.context = context; //设置实例的属性,返回选择范围
return this; //返回当前实例
} else{
this.length = 0; //否则,设置实例的length属性值为0
this.context = context; //设置实例的属性,返回选择范围
return this; //返回当前实例
}
},
jquery: "1.3.2",
size: function() {
return this.length;
}
}
jQuery.fn.init.prototype = jQuery.fn;
分享到:
相关推荐
《犀利开发+jQuery内核详解与实践》这本书便是在这样的背景下诞生的,它不仅仅是为了解释jQuery的用法,更重要的是深入解析了jQuery的内核原理,并结合实际开发中的应用场景,指导读者如何将jQuery的使用提升到一个...
一、特别说明: 因网站上传文件50MB限制,所以本书分三个文件上传,分别为犀 利开发_jQuery内核详解与实践(完整版421页).part1;犀利开发_jQuery内核详解与实践(完整版421页).part2和犀利开发_jQuery内核详解与...
《犀利开发 jQuery内核详解与实践》这本书深入解析了jQuery这一流行的JavaScript库的核心机制与实际应用技巧。根据所提供的信息,我们将围绕此书的主题展开详细的知识点介绍。 ### 一、jQuery简介 #### 1.1 什么是...
jQuery是世界上最流行的JavaScript库之一,它极大地简化了HTML文档遍历、事件处理、动画和Ajax交互等任务。这个资源集合了jQuery从1.5.2到1.8.3的多个版本,包括min版,即经过压缩和优化的版本,适用于生产环境以...
《犀利开发+jQuery内核详解与实践》是一本深入探讨jQuery内核及犀利开发技术的专业书籍。这本书分为两大部分,第一部分是jQuery内核的详解,旨在帮助读者理解这个广泛使用的JavaScript库的核心机制;第二部分则侧重...
一、特别说明: 因网站上传文件50MB限制,所以本书分三个文件上传,分别为犀 利开发_jQuery内核详解与实践(完整版421页).part1;犀利开发_jQuery内核详解与实践(完整版421页).part2和犀利开发_jQuery内核详解与...
一、特别说明: 因网站上传文件50MB限制,所以本书分三个文件上传,分别为犀 利开发_jQuery内核详解与实践(完整版421页).part1;犀利开发_jQuery内核详解与实践(完整版421页).part2和犀利开发_jQuery内核详解与...
本资源为犀利开发_jQuery内核详解与实践-带书签pdf版.Part3(完整版421页) Part1下载地址:http://download.csdn.net/detail/u010371317/5638783 Part2下载地址:...
《犀利开发 jQuery内核详解与实践》是一本深度探讨jQuery这一广泛使用的JavaScript库的书籍。本书旨在帮助读者深入理解jQuery的内部工作机制,并通过实践应用提升开发效率。jQuery以其简洁的API和强大的功能,深受...
### jQuery内核详解与实践 #### 一、引言 jQuery作为一款流行的JavaScript库,在前端开发领域具有举足轻重的地位。它简化了许多常见的JavaScript任务,如选择元素、动画、事件处理等,使得开发者能够更加高效地...
本资源由于现在网上提供的没有带导航标签,经过本人阅读一遍后加上了导航标签,方便各位学习人员导读,本书写得真的很实用,本书结合jQuery...本资源为犀利开发_jQuery内核详解与实践-带书签pdf版.Part1(完整版421页)
jQuery API 3.3.1-速查手册是一套jQuery API 3.3.1速查表,很实用的手册,在编写jQuery应用代码时查看api信息很实用,其内包含了jquery学习过程中的各类知识点,能够让软件工程师清楚地了解每一个函数的核心内容,...
本教程将详细讲解如何利用jQuery实现一个浏览器嗅探器特效,帮助开发者识别用户正在使用的浏览器类型、内核版本以及设备的基础信息。 首先,要实现浏览器嗅探器,我们需要理解jQuery中的`navigator`对象。这个对象...
### jQuery学习笔记详解 #### 一、jQuery简介 jQuery是一个流行的JavaScript库,旨在简化Web开发者在客户端处理HTML文档和操作DOM的方式。通过提供简洁、易读的API,jQuery极大地降低了编写复杂的JavaScript代码所...
- **作用**: 它是jQuery框架的内核,用于构建jQuery对象。 **3.2 构造器的使用** - **参数类型**: 1. **选择器**: `jQuery(expression, [context])` - 根据CSS选择器在页面中匹配元素,可指定上下文进行匹配...
标题中的“图文切换-多浏览器兼容-jQuery-jcSlider”表明我们要探讨的是一个基于jQuery的JavaScript库,jcSlider,它专门用于实现图文切换效果,并且这个库在多种浏览器上具有良好的兼容性。以下是对这些知识点的...
你也将学到jQuery的基本工作原理,包括它如何在项目中应用,以及它的内核(强大的选择器引擎)如何工作。 1.1 为什么选择jQuery 在Web应用中,JavaScript以难以驾驭闻名。浏览器兼容性差、难以调试,又有着使人...
`jQuery`,作为一款广泛使用的JavaScript库,提供了丰富的API来帮助开发者实现这一目标。本文将详细介绍如何使用`jQuery`来修改滚动条的样式,以及一个包含4个示例图的滚动条特效应用。 首先,我们需要了解`jQuery`...
综上所述,基于jQuery的自定义滚动条技术涵盖了JavaScript基础、jQuery库的应用、CSS样式设计、事件处理、动画制作等多个方面,通过学习和实践这些知识点,开发者可以创造出既美观又实用的滚动条,提升网站或应用的...
#### 九、jQuery内核研究 1. **源码分析** - 学习jQuery的核心实现机制。 2. **性能优化** - 理解如何提高jQuery应用的性能。 #### 十、jQuery常用插件 1. **介绍** - 插件是jQuery生态系统的重要组成部分,...