JavaScipt的jQuery源码分析

此项目是jQuery源码分析, jQuery一共13个模块,从2.1版开始jQuery支持通过AMD模块划分,jQuery在最开始发布的1.0版本是很简单的,只有CSS选择符、事件处理和AJAX交互3大块。 jQuery3.0 新特性有:1.移除旧的IE工作区;2.jQuery 3.0运行在Strict Mode;3.引进for...of循环;4.对包含特殊含义的字符串提供转义的新方法等等。

应用介绍

类一:
```
function ajQuery() {
    this.name = 'jQuery';
    this.sayName = function(){
    return this.name
}
var a = new ajQuery()
var b = new ajQuery()
var c = new ajQuery()
```
类二:
```
function ajQuery() {
    this.name = 'jQuery'
}
ajQuery.prototype = {
    sayName: function() {
        return this.name
    }
}
var a = new ajQuery()
var b = new ajQuery()
var c = new ajQuery()
```
类一与类二产生的结构几乎是一样的,而本质区别就是:类二new产生的a、b、c三个实例对象共享了原型的sayName方法,这样的好处节省了内存空间,类一则是要为每一个实例复制sayName方法,每个方法属性都占用一定的内存的空间,所以如果把所有属性方法都声明在构造函数中,就会无形的增大很多开销,这些实例化的对象的属性一模一样,都是对this的引用来处理。除此之外类一的所有方法都是拷贝到当前实例对象上。类二则是要通过scope连接到原型链上查找,这样就无形之中要多一层作用域链的查找了。
jQuery对象的构建如果在性能上考虑,所以就必须采用原型式的结构:
```
jQuery = function( selector, context ) {
    return new jQuery.fn.init( selector, context );
}
jQuery.fn = jQuery.prototype = {
    init:function(){
    return this
},
    jquery: version,
    constructor: jQuery,
    ………………
}
var a = $() ;
```
使用原型结构,性能上是得到了优化,但是ajQuery类这个结构与目标jQuery的结构的还是有很大不一致:

JavaScipt的jQuery源码分析。

文件列表(部分)

名称 大小 修改日期
readme.md6.95 KB2020-01-30

立即下载

相关下载

[JavaScipt的jQuery源码分析] 此项目是jQuery源码分析, jQuery一共13个模块,从2.1版开始jQuery支持通过AMD模块划分,jQuery在最开始发布的1.0版本是很简单的,只有CSS选择符、事件处理和AJAX交互3大块。 jQuery3.0 新特性有:1.移除旧的IE工作区;2.jQuery 3.0运行在Strict Mode;3.引进for...of循环;4.对包含特殊含义的字符串提供转义的新方法等等。

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部