博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery.js中继承的实现
阅读量:4129 次
发布时间:2019-05-25

本文共 1133 字,大约阅读时间需要 3 分钟。

关键字: ajax, jquery.js, 继承

 

  对于JavaScript语言,虽然标榜是面向对象的语言,但是和那些像Java一样传统的面向对象的语言相比,其面向对象的实现,总显得一些别扭。就拿继承来说吧,传统面向对象的语言都是在语言层面上支持了,而JavaScript就要自己来实现继承这个功能了,下面来看看jQuery.js是怎么实现这个功能的。

 

  在jQuery.js中有一个jQuery.extend()的静态方法,它提供了jQuery.js中的整个继承功能,也是jQuery.js中的一个重要的方法,其代码分析如下:

Js代码
复制代码  

 

  这个方法与prototype.js中实现的也差不多,在prototype.js中少的只是没有参数prop的判断,而在调用这个方法的时候也存在一点点差异,在prototype.js中一般是明确指定扩展到谁,而在jQuery.js中一般只有需要扩展的方法,而没有明确再指定一个需要扩展到谁,这个是通过extend()方法内部的判断来指定。

 

  在这里还有一个特殊的地方,就是在函数开头的地方有jQuery.extend = jQuery.fn.extend,而在程序的前面已经将jQuery.prototype赋值给jQuery.fn了,所以在后面的调用中会出现jQuery.extend()和jQuery.fn.extend()的不同调用,这两个方法调用产生的结果也不一样,jQuery.extend()的调用并不会把方法扩展到对象的实例上,引用它的方法也需要通过jQuery类来实现,如jQuery.init(),而jQuery.fn.extend()的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法,这是很重要的,在jQuery.js中到处体现这一点,如下代码可以更好的体会这一点。

Js代码  

 

转载地址:http://zhzvi.baihongyu.com/

你可能感兴趣的文章
C 语言 学习---复选框及列表框的使用
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
一篇搞懂Java反射机制
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>
Count and Say
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
Valid Palindrome 简单的回文判断
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
web.py 0.3 新手指南 - 如何用Gmail发送邮件
查看>>
web.py 0.3 新手指南 - RESTful doctesting using app.request
查看>>
web.py 0.3 新手指南 - 使用db.query进行高级数据库查询
查看>>
web.py 0.3 新手指南 - 多数据库使用
查看>>
一步步开发 Spring MVC 应用
查看>>
python: extend (扩展) 与 append (追加) 的差别
查看>>
「译」在 python 中,如果 x 是 list,为什么 x += "ha" 可以运行,而 x = x + "ha" 却抛出异常呢?...
查看>>