数码资讯
jQuery的内部原理及实现方法分析
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
这段在jQuery的源代码的学习时间,jQuery也得益于强劲的发展,越来越多的丹尼尔研究jQuery学习资料已超过两年前发现,有很多很好的资源,如高jquery1.6.1源代码分析。这些教程是分析内部原则和实现jQuery非常谨慎,并有一个学习和了解jQuery帮助很大。不过,我想很多的教程不掌握jQuery的总体结果,我试图从整体上说明jQuery内部实现。
大家都知道,有两种方式调用jQuery。一个是高级实现。通过传递一个参数,实现了DOM的选择,如选择所有的H1元素通过H1(H1),第二个是相对较低的水平上实现,如果是通过Ajax实现美元。ajax.so,两者之间的区别是什么我们使用typeof功能检测(H1的)美元美元。Ajax,分别对象和功能。任何学习jQuery的人都知道或听说前者返回jQuery对象,那么jQuery对象是什么,它与jQuery有什么关系呢让我们先看一下(var)i($文档+写)(i + + +)({ + });一个jQuery对象属性打印和相应的值,可以看到它有100多个属性,控制台输入($ *)可以看到大部分原始属性是从jQuery属性类型继承的。jQuery对象实际上是一个对象:
让我们假设jQuery的实现可能是这样的:
函数jQuery(){
此{ 0 } 一些DOM元素;
此{ 1 } 一些DOM元素;
此{ 2 } 一些DOM元素;
这个长度= 3;
这个prevobject =对象;
这个上下文=一些对象;
这个选择器=一些选择器;
}
原型= {
获取:函数(){ },
每个:函数(){ },
......
}
这些代码可以通过新操作符创建具有上述属性的jQuery对象。但实际上,当我们调用jQuery来创建jQuery对象时,我们不使用新操作符。这是如何实现的看看jQuery的实现:
函数(选择器,上下文){
jQuery对象实际上只是 / init constructor'enhanced
返回新的jquery.fn.init(选择器,语境,rootjquery);
}
jQuery。
jQuery:core_version,
函数(选择器,上下文){
一些代码
返回此;
}
在这里有一些代码
/……
}
jQuery原型= jquery.fn FN。初始化;
这里有一些非常巧妙的观点。第一点是通过jQuery原型属性的init方法创建对象,以达到创建没有新对象的目的。第二点是处理这个指向init方法。我们知道,通过调用init返回jQuery的一个实例,该实例必须继承jquery.prototype属性,所以这在init继承jquery.prototype.but初始化这个属性,受限制的范围,并没有获得其他属性jquery.prototype,jQuery通过a'jquery。FN。init。原型= jQuery。fn'to原始点jquery.fn,以便初始化生成jQuery对象会有jquery.fn性质。
在这里,jQuery的基本原型已经出现了,有两个对象,一个是jQuery的构造函数,另一个是这个构造函数生成的对象(我们称之为jQuery对象,与普通对象没有区别)。
你可以看到,jquery.prototype jQuery的属性和方法都有自己的构造函数,调用的方法不同,这两个对象有一个扩展方法,使用jQuery扩展自己的属性和方法,实现扩展是一种实用的代码,对源代码的分析,在后做一个详细的分析。
大家都知道,有两种方式调用jQuery。一个是高级实现。通过传递一个参数,实现了DOM的选择,如选择所有的H1元素通过H1(H1),第二个是相对较低的水平上实现,如果是通过Ajax实现美元。ajax.so,两者之间的区别是什么我们使用typeof功能检测(H1的)美元美元。Ajax,分别对象和功能。任何学习jQuery的人都知道或听说前者返回jQuery对象,那么jQuery对象是什么,它与jQuery有什么关系呢让我们先看一下(var)i($文档+写)(i + + +)({ + });一个jQuery对象属性打印和相应的值,可以看到它有100多个属性,控制台输入($ *)可以看到大部分原始属性是从jQuery属性类型继承的。jQuery对象实际上是一个对象:
让我们假设jQuery的实现可能是这样的:
函数jQuery(){
此{ 0 } 一些DOM元素;
此{ 1 } 一些DOM元素;
此{ 2 } 一些DOM元素;
这个长度= 3;
这个prevobject =对象;
这个上下文=一些对象;
这个选择器=一些选择器;
}
原型= {
获取:函数(){ },
每个:函数(){ },
......
}
这些代码可以通过新操作符创建具有上述属性的jQuery对象。但实际上,当我们调用jQuery来创建jQuery对象时,我们不使用新操作符。这是如何实现的看看jQuery的实现:
函数(选择器,上下文){
jQuery对象实际上只是 / init constructor'enhanced
返回新的jquery.fn.init(选择器,语境,rootjquery);
}
jQuery。
jQuery:core_version,
函数(选择器,上下文){
一些代码
返回此;
}
在这里有一些代码
/……
}
jQuery原型= jquery.fn FN。初始化;
这里有一些非常巧妙的观点。第一点是通过jQuery原型属性的init方法创建对象,以达到创建没有新对象的目的。第二点是处理这个指向init方法。我们知道,通过调用init返回jQuery的一个实例,该实例必须继承jquery.prototype属性,所以这在init继承jquery.prototype.but初始化这个属性,受限制的范围,并没有获得其他属性jquery.prototype,jQuery通过a'jquery。FN。init。原型= jQuery。fn'to原始点jquery.fn,以便初始化生成jQuery对象会有jquery.fn性质。
在这里,jQuery的基本原型已经出现了,有两个对象,一个是jQuery的构造函数,另一个是这个构造函数生成的对象(我们称之为jQuery对象,与普通对象没有区别)。
你可以看到,jquery.prototype jQuery的属性和方法都有自己的构造函数,调用的方法不同,这两个对象有一个扩展方法,使用jQuery扩展自己的属性和方法,实现扩展是一种实用的代码,对源代码的分析,在后做一个详细的分析。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。