手机版

深刻理解jQuery()方法的构造原理

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

JQuery虽然比较简单,但是要全面掌握并快速灵活地使用并不是那么容易。它提供了许多方法,包括网页开发的各个方面的知识。所以,要全面掌握这些知识点,我个人认为有必要对jquery有一个深入的了解,把这些知识点整理出来,这样在面对一些JQuery代码的时候就不会迷茫,知道哪种方式达到一种特殊的效果才是最好的做法,这样就可以快速的使用JQuery进行项目开发。

jQuery中最常用的方法是jQuery(),意思是$()。

jQuery()是一个函数调用,调用的结果是返回一个JQuery实例对象。

编写组件的常见方法是将组件封装到一个对象中,并在需要时通过新的操作符创建一个实例。但是jQuery()不需要用new手动实例化,它会自动返回一个实例。

要实现这一点,最直接的方法是定义这样一个函数:

问题是有一个无限循环:

最简单的解决方案是使用另一个构造函数:

这样做没有技术问题,但是jQuery的作者没有这样做。可能是因为一些技术上的洁癖或者我暂时不清楚。init是在jQuery函数的原型中定义的:

以init为中转点,最终返回一个jQuery实例。看起来更“优雅”,更“科技”。

在一个自执行函数中编写上述代码(形成一个私有范围并避免名称空间污染)构成了jQuery的核心框架(简化版):

要理解上述结构的工作原理,必须了解基于构造函数和原型的JavaScript的继承模式。

当关键字new出现在函数调用表达式之前时,函数变成一个构造函数,依次发生四件事:

1.首先,创建一个空对象(也称为实例)。

2.空对象继承构造函数原型中的属性和方法。这就是为什么所有的方法都应该写在构造函数的原型中。

3.空对象在构造函数中被分配给该对象。

4.执行构造函数。如果在构造函数中显式返回一个对象,则由return指定的对象不再是新创建的空对象。否则,将返回所有新的空对象。

详见阮一峰教程:http://javascript.ruanyifeng.com/oop/basic.html

所以jQuery()的构造原理很明确:每次调用jQuery()时,都会返回构造函数init指定的这个对象,这个对象已经被赋值为新创建的空对象。由于jQuery.prototype被分配给init.prototype,新创建的空对象继承了jQuery的所有方法。

事实上,在构造函数init中删除return this并没有坏处。至于作者为什么加上这句话,诶,可能是因为他知道的太多了。

摘要

以上就是jQuery()方法构造原理的全部内容。希望本文的内容能给大家的学习或工作带来一些帮助。有问题可以留言交流。

版权声明:深刻理解jQuery()方法的构造原理是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。