前面我们扩展了bind方法和ready函数,这次我要讲一下$.fn.extend 和$.extend函数。 其他的不多说,直接切入主题吧! 先来看看这两个函数的区别: $.fn.extend是为查询的节点对象扩展方法,是基于$的原型扩展的方法 $.extend是扩展常规方法,是$的静态方法。 我们之前写的代码看一下: (function (win) { var _$ = function (selector, context) { return new _$.prototype.Init(selector, context); } 在jQuery库中,`$.fn.extend` 和 `$.extend` 是两个非常重要的功能,它们用于扩展jQuery的功能和对象。这两个函数虽然名字相似,但作用却截然不同。 `$.fn.extend` 是用于扩展jQuery选择器对象的方法。当你调用 `$.fn.extend` 并传递一个对象作为参数时,你会将该对象的所有属性添加到jQuery对象(即`$.fn`,它实际上是`$.prototype`的别名)上。这样,你就可以在任何jQuery选择器结果集上调用这些新方法。例如,如果你执行 `$.fn.extend({myMethod: function() {...}})`,你就可以在选择器结果集上调用 `$('selector').myMethod()`。`$.fn.extend` 主要用于创建自定义插件和扩展jQuery的核心功能。 接下来,`$.extend` 是一个静态方法,它用于合并一个或多个对象到目标对象。当你调用 `$.extend(target, source1, source2, ...)`,`target` 对象将接收 `source1`、`source2` 等源对象的所有可枚举属性。这个方法常用于配置选项或合并数据。与 `$.fn.extend` 不同,`$.extend` 不会修改jQuery的核心原型,而是直接操作指定的对象。 在提供的代码示例中,作者创建了一个简单的jQuery模拟库 `_$_`,并为它实现了 `$.fn.extend` 和 `$.extend` 方法。`_$.fn` 被设置为 `_$.prototype` 的引用,这样我们就可以在上面添加方法。`isObj` 函数用于检查传入的参数是否为对象。然后,两个 `extend` 方法几乎相同,遍历传入对象的属性并将其添加到各自的上下文对象(`$.prototype` 对于 `$.fn.extend`,而 `$` 对于 `$.extend`)。 完整的模拟代码如下: ```javascript (function (win) { var _$ = function (selector, context) { return new _$.prototype.Init(selector, context); } _$.prototype = { Init: function (selector, context) {}, each: function (callback) {} } _$.prototype.Init.prototype = _$.prototype; _$.fn = _$.prototype; var isObj = function (o) { return Object.prototype.toString.call(o) === "[object Object]"; } _$.fn.extend = function (obj) { if (isObj(obj)) { for (var i in obj) { this[i] = obj[i]; } } } _$.extend = function (obj) { if (isObj(obj)) { for (var i in obj) { this[i] = obj[i]; } } } window.$ = window.JQuery = _$; })(window); ``` 使用这个模拟库,你可以像使用原生jQuery一样调用 `$.fn.extend` 和 `$.extend`: ```javascript _$_().fn.extend({myMethod: function() {console.log('My custom method!')}}) _$_().myMethod(); // 输出 "My custom method!" _$_().extend({configOption: 'value'}) console.log(_$().configOption); // 输出 "value" ``` `$.fn.extend` 和 `$.extend` 是jQuery中扩展功能的关键工具,它们使得开发者能够轻松地为jQuery增加新的功能和定制行为。理解这两个函数的工作原理对于深入学习jQuery和开发jQuery插件至关重要。




















- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 单片机C语言教程.doc
- 网络地图制图中的主要问题及其解决方案.docx
- 办事处经理项目管理指引.docx
- 单片机的盲人蔽障器研究与设计开发.doc
- 大数据在淮河流域民俗文化保护中的应用价值探析.docx
- 浅析税务系统网络与信息安全建设.docx
- 单片机复习资料(9份).doc
- 软件企业税收财政政策汇编.doc
- 项目管理中的十大关键流程.docx
- 人工智能趋势视角下的未来教育.docx
- 南方电网电子商务系统购标、下载、制作、上传、开标查看操作手册.docx
- C语言程序方案设计书-职工信息管理系统[1].doc
- 110-kv电网计算机整定计算新方案.doc
- 探究网络信息安全问题及防范措施.docx
- ie登录ftp问题解决方法.doc
- 刍议互联网+时代的艺术设计教育.docx


