javascript - 关于jquery一段源码的疑问?
PHP中文网
PHP中文网 2017-04-11 10:22:45
[JavaScript讨论组]
jQuery.fn = jQuery.prototype = {...};
// 这个试讲jquery的原型赋给jquery.fn

jQuery.extend = jQuery.fn.extend = function(){...}
// jquery原型的方法为什么要赋给jquery的静态方法?
// 这段代码和继承有什么关系?
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
天蓬老师

jQuery作为jquery对外暴露的全局对象,$是其简写形式。

jQuery.fn是对jQuery.prototype的简写。

某些方法我们希望在jquery实例对象使用(实例方法),也可以直接使用(静态方式调用),简单的实现就是你这里看到的extend方法。你可以看到jQuery中有很多方法采取的这种方式。全局类的调用(静态方式调用),你可以当做具有类似工具函数的功能。

至于这段代码和继承有什么关系?
我的回答是,没有关系!
extend方法,我更倾向于把他叫做扩展,jQuery.extend可以实现静态方法的扩展,jQuery.fn.extend可以实现jquery对象(实例对象)的扩展(jquery的插件开发主要采取这种方式)。

jquery的源码非常值得研究和学习!

高洛峰

因为我们不想new Jquery来用它,所以把它写到jquery的一个方法里面,Jquery函数返回jquery方法的实例,这个静态方法有着jquery所有的方法,这样就避免了你每次用都要new jquery。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号