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”);
分享到:
相关推荐
如果省略 `target` 参数,`jQuery.extend()` 将直接修改 jQuery 对象本身(`$` 或 `jQuery`)或 `$.fn`(jQuery 的实例方法)。例如: - `$.extend(src)`:将 `src` 合并到 jQuery 全局对象中,添加新的方法或属性...
9. **$.extend()和$.fn.extend()**:`$.extend()`用于合并两个或更多的对象,`$.fn.extend()`则用于扩展jQuery对象的方法,使得每个jQuery实例都可以使用这些新方法。 10. **$.each()**:这是一个用于遍历对象或...
$.extend($.fn.dialog.methods, { mymove: function(jq, newposition){ return jq.each(function(){ $(this).dialog('move', newposition); }); } }); $.extend($.fn.dialog.methods, { mymove: ...
- **实现**:利用 jQuery 内置的 `$.extend` 方法,一次性添加多个函数。 - **示例**:添加两个函数 `sayHello` 和 `sayBye`。 ```javascript (function($) { $.extend({ sayHello: function() { alert('...
例如,`$.fn.extend()`用于向jQuery的实例方法中添加功能,而`$.fn`实际上是`$.prototype`的别名,这样可以方便地为所有jQuery对象添加新方法。 ### 六、注意事项 虽然jQuery 1.4.2是一个较旧的版本,但其基本概念...
7. **$.extend()**:用于合并两个或更多对象的属性,常用于扩展jQuery的插件。 8. **$.each()**:遍历数组或对象,常用于迭代操作。 9. **$.proxy()**:确保函数调用时保持正确的上下文,即`this`指向。 10. **$....
3. **$.extend()**: 合并两个或更多对象的属性,用于创建插件或扩展jQuery。 4. **$.fn.extend()**: 用于扩展jQuery对象的方法,创建自定义功能。 ### 四、jQuery动画 1. **基本动画**: `fadeIn()`, `fadeOut()`,...
以下是对这两个方法的详细解释以及它们的具体应用。 ### jQuery.extend() jQuery.extend() 是一个用于合并两个或更多对象的内容到第一个对象的静态方法。在使用上,它主要可以分为两大类用途: #### 1. 全局函数...
本资源主要介绍了使用Vue.extend构建消息提示组件的方法实例,通过实践和ElementUI的message源码研究,作者创建了一个简陋的消息提示组件,并详细解释了Vue.extend的使用方法和消息提示组件的实现过程。 知识点1:...
jQuery的可扩展性极强,开发者可以通过`$.fn.extend()`创建自定义插件。例如,`$.fn.myPlugin = function() {...}`定义了一个名为myPlugin的插件,可以应用于任何jQuery对象。 ### 8. 版本差异 虽然jQuery API ...
$.extend($.fn.dialog.methods, { mymove: function(jq, newposition){ return jq.each(function(){ $(this).dialog('move', newposition); }); } }); $.extend($.fn.dialog.methods, { mymove: ...
在这个自定义函数中,`$.extend`用于合并默认配置与用户传入的`options`,形成最终的对话框配置。`onClose`回调会在`dialog`关闭时触发,这里不仅将`handler`设置回`undefined`,还调用了`dialog('destroy')`来彻底...
jQuery还提供了许多实用的辅助函数,如`$.each()`, `$.extend()`, `$.grep()`, `$.inArray()`等,它们在处理数组、对象、遍历等方面非常有用。 在学习jQuery时,`jquery_api.chm`和`jquery_api`很可能是jQuery的API...
3. **$.extend()**: 合并两个或更多对象的属性,常用于创建插件时扩展jQuery原型。 4. **$.ready()**: 页面加载完成后执行的函数,确保DOM准备就绪。 5. **$.get() / $.post()**: 简化版本的Ajax请求,分别对应GET...
8. **$.extend()和$.fn.extend()**:这两个方法分别用于对象的合并和扩展jQuery对象的方法,是实现自定义功能和插件的基础。 9. **$.each()**:该方法用于迭代数组或对象,是进行批量处理操作的常用工具。 10. **...
7. **插件扩展**:jQuery生态系统中有大量插件,如用于图片轮播的`bootstrap-carousel`, 表格分页的`DataTables`, 弹窗提示的`bootbox`等,它们通过$.fn.extend()扩展了jQuery的功能。 8. **$.each()**:这是一个...
5. **插件扩展**:jQuery拥有丰富的插件生态系统,如表单验证、轮播图、模态框等,通过`$.fn.extend()`可扩展jQuery对象。 6. **工具方法**:如`$.trim()`, `$.merge()`, `$.inArray()`, `$.map()`等,提供了许多...
6. **实用工具函数**: Zepto.js还包含了一些通用的工具函数,如`$.each()`用于遍历数组或对象,`$.extend()`用于对象合并,`$.trim()`用于字符串去边距等。 在Zepto中文教程中,你将学习到如何有效地使用这些功能,...
开发者可以通过`$.fn.extend()`方法扩展jQuery对象,创建新的方法供他人使用。 **8. 版本1.7的新特性** - `.on()`方法取代了`.bind()`、`.live()`和`.delegate()`,提供更灵活的事件绑定。 - `$.support`对象更新,...
9. **实用工具方法**:如`$.each()`, `$.trim()`, `$.extend()`, `$.grep()` 等通用的辅助函数。 通过这个API文档,开发者不仅可以找到每个函数的详细说明,还能看到相关的示例代码和参数说明,有助于理解和应用...