jQuery1.3.2源码学习-5jQuery中的原型

jQuery1.3.2源码学习-5jQuery中的原型

ID:40557545

大小:64.76 KB

页数:3页

时间:2019-08-04

jQuery1.3.2源码学习-5jQuery中的原型_第1页
jQuery1.3.2源码学习-5jQuery中的原型_第2页
jQuery1.3.2源码学习-5jQuery中的原型_第3页
资源描述:

《jQuery1.3.2源码学习-5jQuery中的原型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在JavaScript中,每个函数对象都有一个默认的属性prototype,称为函数对象的原型成员,这个属性指向一个对象,称为函数的原型对象,当我们每定义了一个函数的时候,JavaScript就创建了一个对应的原型对象,也就是说,当我们定义一个函数的时候,实际上得到了两个对象,一个函数对象,一个原型对象。原型对象是一个特殊的对象,函数的prototype成员指向它的原型对象。可以通过函数对象的prototype成员取得这个原型对象的引用。 下面定义一个函数对象Person,然后通过prototype来取得它的原型对象。然后在它的原型对象上定

2、义了一个方法。functionPerson(){} Person.prototype.showPerson=function(){      alert(“PersonObject.”);} varalice=newPerson();alice.showPerson(); 这个原型对象上定义的成员将用来共享给所有通过这个函数创建的对象使用。相当于C#中的实例方法,对象,函数和原型在内存中的关系如下图所示:   每个对象也都有一个原型成员prototype,通过new函数创建的对象会通过函数的prototype找到函数的原型,然后将自己的原型

3、指向这个对象。对于不是通过函数创建的对象实例和原型对象,它们的原型会被设置为Object函数的原型对象。 Object函数对象是JavaScript中定义的顶级函数对象,在JavaScript中所有的对象都直接或者间接地使用Object对象的原型。当访问对象的属性或者方法的时候,如果对象本身没有这个属性或者方法,那么,JavaScript会检查对象的prototype对象是否拥有这个属性或者方法,如果有,则作为对象的属性或者方法返回,如果没有,那么将通过原型对象的prototype继续进行检查,直到原型对象为Object函数的原型对象为止。

4、 但是prototype是一个特殊的属性,在大多数的浏览器上,例如IE浏览器,都不能直接访问对象的prototype成员。返回的结果为undefined。不能赋予对象一个新的原型,只能通过创建它的函数来确定对象的原型。 函数对象的原型有一个特殊的用途,就是通过函数new创建出来的对象,会自动将函数对象的原型赋予新创建出的对象的原型。这样,如果为某个函数设置了原型对象,那么,所有通过这个函数创建的对象将拥有同样的原型对象。通过这个方法,可以使这些对象共享相同的属性或者方法,来模拟类型的概念。 在jQuery中,我们经常使用的$函数就是定义在w

5、indow对象上的$函数。 其代码如下:24jQuery=window.jQuery=window.$=function(selector,context){25  //ThejQueryobjectisactuallyjusttheinitconstructor'enhanced'26  returnnewjQuery.fn.init(selector,context);27}, 这个函数实际上通过newjQuery.fn.init(selector,context)来完成,也就是通过init函数创建了一个对象。 在541行重新指定了函数

6、init的原型对象。所以init函数的原型对象就是fn对象。 540//GivetheinitfunctionthejQueryprototypeforlaterinstantiation541jQuery.fn.init.prototype=jQuery.fn; 这样所有通过$创建出来的对象都将共享fn对象上的成员。因此,jQuery对象都有了类似attr、html等等方法了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。