`

$.extend的解释

    博客分类:
  • js
 
阅读更多
2 $.extend()
因为项目中有些地方看到有用到这个方法,当时也不知道是什么意思,见的多了就想了

解一下。原来这个方法还是挺有用的,多用在编写插件,当然,它本身也有一些重载原型。

2.1 extend(result,item1,item2…..)
这里这个方法主要用来合并,将所有的参数项都合并result中,并返回result,但是这

样就会破坏result的结构。

2.2 extend({},item1,item2,……)
用这个方法,可以将所得的结果全部合并在{}中,并返回,而且还不会破坏原有的项的结构。

示例:

Var item={name:”olive”,age:23};

Var item1={name:”Momo”,sex:”gril”};

Var result=$.extend({},item,item1);

结果:

Result={name:”Momo”,age:23,sex:”gril”};

说明:

以上的结果表明extend方法将所有的项都合并到了{}中,但是,细心一点就会发现,其中item1中的name:“Momo” 将item中的name:“olive”给覆盖了,这是怎么回事?请接着往下看。

2.3 extend(bool,{},item1,item2….)
Extend方法还有带bool型参数的重载。

bool型参数为true表示深拷贝,为false时表示浅拷贝。具体可以通过一下示例来说明:

示例:

var item={name:“olive”,age:23,address{provice:”河南”,city:”郑州”}};

var item1={sex:”girl”,address{city:”北京”}};

var result=$.extend(true,item,item1);

var result1=$.extend(false,item,item1);

结果:

Result={name:“olive”,age:23,sex:”gril”,address:{provice:”河南”,city:”北京”}};

Result1={name:“olive”,age:23,sex:”gril”,address:{ city:”北京”}};

说明:

以上结果说明,当参数为ture时,即为深拷贝,当子项item1中的子项有与item中的子项相同属性的值不一样时,item1中子项的值会将item子项中的值给覆盖,当子项item1的属性跟item中的属性不同时,会与item进行合并。

当参数为false时,子项item1中的子项中与item中的子项属性相同时,item1中子项的属性值会将item中的值给完全覆盖。

2.4 $.extend(item)
该方法是将item合并到Jquery的全局对象中去,相当于为Jquery全局对象添加了一个

静态方法(对应这里的静态方法,当然还有实例方法,在后边有介绍)。

     示例:

           $.extend({SayHello:function(value){alert(“hello “+value);}});

           这样写过之后,就可以直接调用SayHello方法:

           $.SayHello(“Olive”);

     说明:该方法相当于为Jquery类添加了新的方法。

2.5 $.fn.extend(item)
上边提到的$.extend(item)说是为Jquery类添加了静态方法,那么这里的$.fn.extend(item

)就是为每一个实例添加一个实例方法了。

     示例:

         $.fn.extend({hello:function(value){alert(“hello “+value);}});

         这样写过之后,在获取每一个示例之后,都可以调用该方法:

         $(“#id”).hello(“Olive”);
分享到:
评论

相关推荐

    jQuery.extend 函数详解

    如果省略 `target` 参数,`jQuery.extend()` 将直接修改 jQuery 对象本身(`$` 或 `jQuery`)或 `$.fn`(jQuery 的实例方法)。例如: - `$.extend(src)`:将 `src` 合并到 jQuery 全局对象中,添加新的方法或属性...

    jQuery-3.3.1-API-Docs-CN jQuery离线文档

    9. **$.extend()和$.fn.extend()**:`$.extend()`用于合并两个或更多的对象,`$.fn.extend()`则用于扩展jQuery对象的方法,使得每个jQuery实例都可以使用这些新方法。 10. **$.each()**:这是一个用于遍历对象或...

    最新jquery easyUI中文文档 1.5版本没有之一

    $.extend($.fn.dialog.methods, { mymove: function(jq, newposition){ return jq.each(function(){ $(this).dialog('move', newposition); }); } }); $.extend($.fn.dialog.methods, { mymove: ...

    jquery插件编写指南

    - **实现**:利用 jQuery 内置的 `$.extend` 方法,一次性添加多个函数。 - **示例**:添加两个函数 `sayHello` 和 `sayBye`。 ```javascript (function($) { $.extend({ sayHello: function() { alert('...

    jQuery1.4.2_API帮助文档简体中文版

    例如,`$.fn.extend()`用于向jQuery的实例方法中添加功能,而`$.fn`实际上是`$.prototype`的别名,这样可以方便地为所有jQuery对象添加新方法。 ### 六、注意事项 虽然jQuery 1.4.2是一个较旧的版本,但其基本概念...

    jquery1.7.2 API.CHM中文版

    7. **$.extend()**:用于合并两个或更多对象的属性,常用于扩展jQuery的插件。 8. **$.each()**:遍历数组或对象,常用于迭代操作。 9. **$.proxy()**:确保函数调用时保持正确的上下文,即`this`指向。 10. **$....

    jQuery1.3中文文档打包

    3. **$.extend()**: 合并两个或更多对象的属性,用于创建插件或扩展jQuery。 4. **$.fn.extend()**: 用于扩展jQuery对象的方法,创建自定义功能。 ### 四、jQuery动画 1. **基本动画**: `fadeIn()`, `fadeOut()`,...

    jQuery.extend()、jQuery.fn.extend()扩展方法示例详解

    以下是对这两个方法的详细解释以及它们的具体应用。 ### jQuery.extend() jQuery.extend() 是一个用于合并两个或更多对象的内容到第一个对象的静态方法。在使用上,它主要可以分为两大类用途: #### 1. 全局函数...

    用Vue.extend构建消息提示组件的方法实例

    本资源主要介绍了使用Vue.extend构建消息提示组件的方法实例,通过实践和ElementUI的message源码研究,作者创建了一个简陋的消息提示组件,并详细解释了Vue.extend的使用方法和消息提示组件的实现过程。 知识点1:...

    jQueryAPI1.2.6.CHM

    jQuery的可扩展性极强,开发者可以通过`$.fn.extend()`创建自定义插件。例如,`$.fn.myPlugin = function() {...}`定义了一个名为myPlugin的插件,可以应用于任何jQuery对象。 ### 8. 版本差异 虽然jQuery API ...

    jquery-easyui-EDT-1.4.2-build1.rar 包含中文文档

    $.extend($.fn.dialog.methods, { mymove: function(jq, newposition){ return jq.each(function(){ $(this).dialog('move', newposition); }); } }); $.extend($.fn.dialog.methods, { mymove: ...

    EasyUI实现第二层弹出框的方法

    在这个自定义函数中,`$.extend`用于合并默认配置与用户传入的`options`,形成最终的对话框配置。`onClose`回调会在`dialog`关闭时触发,这里不仅将`handler`设置回`undefined`,还调用了`dialog('destroy')`来彻底...

    jquery

    jQuery还提供了许多实用的辅助函数,如`$.each()`, `$.extend()`, `$.grep()`, `$.inArray()`等,它们在处理数组、对象、遍历等方面非常有用。 在学习jQuery时,`jquery_api.chm`和`jquery_api`很可能是jQuery的API...

    JqueryAPI以及帮助手册

    3. **$.extend()**: 合并两个或更多对象的属性,常用于创建插件时扩展jQuery原型。 4. **$.ready()**: 页面加载完成后执行的函数,确保DOM准备就绪。 5. **$.get() / $.post()**: 简化版本的Ajax请求,分别对应GET...

    jquery.chm

    8. **$.extend()和$.fn.extend()**:这两个方法分别用于对象的合并和扩展jQuery对象的方法,是实现自定义功能和插件的基础。 9. **$.each()**:该方法用于迭代数组或对象,是进行批量处理操作的常用工具。 10. **...

    jquery 中文api 3.2.1

    7. **插件扩展**:jQuery生态系统中有大量插件,如用于图片轮播的`bootstrap-carousel`, 表格分页的`DataTables`, 弹窗提示的`bootbox`等,它们通过$.fn.extend()扩展了jQuery的功能。 8. **$.each()**:这是一个...

    jquery初步

    5. **插件扩展**:jQuery拥有丰富的插件生态系统,如表单验证、轮播图、模态框等,通过`$.fn.extend()`可扩展jQuery对象。 6. **工具方法**:如`$.trim()`, `$.merge()`, `$.inArray()`, `$.map()`等,提供了许多...

    zepto中文api离线手册.rar_zepto api离线_zeptonAPI_zepto中文教程_zepto中文文档%2

    6. **实用工具函数**: Zepto.js还包含了一些通用的工具函数,如`$.each()`用于遍历数组或对象,`$.extend()`用于对象合并,`$.trim()`用于字符串去边距等。 在Zepto中文教程中,你将学习到如何有效地使用这些功能,...

    Jquery1.7中文帮助手册

    开发者可以通过`$.fn.extend()`方法扩展jQuery对象,创建新的方法供他人使用。 **8. 版本1.7的新特性** - `.on()`方法取代了`.bind()`、`.live()`和`.delegate()`,提供更灵活的事件绑定。 - `$.support`对象更新,...

    jquery教程API

    9. **实用工具方法**:如`$.each()`, `$.trim()`, `$.extend()`, `$.grep()` 等通用的辅助函数。 通过这个API文档,开发者不仅可以找到每个函数的详细说明,还能看到相关的示例代码和参数说明,有助于理解和应用...

Global site tag (gtag.js) - Google Analytics