本文将探索jQuery是如何从最简单的问题开始,并逐步实现羽翼渐丰的演变过程,从jQuery核心技术的还原过程来理解jQuery框架的搭建原理。
原型继承
在JavaScript中,函数无处不在,它可以归置代码段,把相对独立的功能封装在一个函数包中;它可以作为一个对象;它也可以用来实现类。
例如,定义一个最初的jQuery类:
1 | var jQuery = function() { |
上面定义了一个类,类名叫jQuery,我们可以把它当做一个函数,函数名为jQuery,当然,我们也可以把它当做一个对象,对象名就叫jQuery,在JavaScript,一切都是对象。
上面定义的是jQuery一个空函数,啥都没做,实际上,这个函数就是面向对象语言中所谓的构造函数,是用来创建类的。
JavaScript中就是使用function关键字来定义类的,类最基本的特性就是封装、继承、多态等,JavaScript没有extends、implement等关键字,它是通过原型(prototype)来实现的。
js中的每个函数都具有一个prototype属性(不同于1
2
3
4
5
6
7
8
现在我们就来扩展jQuery的原型:
```javascript
var jQuery = function() {};
jQuery.prototype = {
// ...
};
如果你觉得jQuery.prototype名称太长,木有关系,你可以为其重新命名,如fn:
1 | jQuery.fn = jQuery.prototype = { |
当然,如果你还觉得jQuery名称太长,你也可以给jQuery定义一个别名,比如$:
1 | var $ = jQuery = function() {}; |
接下来我们给jQuery的原型对象添加一个方法size和一个属性jquery:
1 | var $ = jQuery = function() {}; |
如何调用这些方法和属性呢?