jQuery.extend()方法
来源:互联网 发布:甬温线动车事故 知乎 编辑:程序博客网 时间:2024/06/12 03:47
定义和用法
jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。
注意:1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略。此时,target就是jQuery对象本身。通过这种方式,我们可以为全局对象jQuery添加新的函数。
2. 如果多个对象具有相同的属性,则后者会覆盖前者的属性值。
语法
$.extend( target [, object1 ] [, objectN ] )
指示是否深度合并
$.extend( [deep ], target, object1 [, objectN ] )
警告: 不支持第一个参数传递 false 。
实例1
遍历数组元素,并修改第一个对象
<divid="log"></div>
<script>
$(function(){
var object1 ={
apple: 0,
banana: {weight:52,price:100},
cherry: 97
};
var object2 ={
banana: {price:200},durian:100};/* object2 合并到 object1 中*/
$.extend(object1,object2);
var printObj =typeofJSON !="undefined" ?JSON.stringify :function(obj){
var arr =[];
$.each(obj,function(key,val){
var next = key +":";
next += $.isPlainObject(val) ?printObj(val) :val;
arr.push(next);
});
return "{ " +arr.join(",") +" }";};
$("#log").append(printObj(object1));
})
</script>
运行结果:{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
递归方式合并两个对象
采用递归方式合并两个对象,并修改第一个对象。
源代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>递归方式合并两个对象</title>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div id="log"></div>
<script>
$(function () {
var object1 = {
apple: 0,
banana: { weight: 52, price: 100 },
cherry: 97
};
var object2 = {
banana: { price: 200 },
durian: 100
};
// 将 object2 递归合并到 object1中
$.extend( true, object1, object2 );
// 假设 JSON.stringify - 在 IE版本< 8中无效
$( "#log" ).append( JSON.stringify( object1 ) );
})
</script>
</body>
</html>
运行结果:{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}
合并 defaults 和 options 对象
合并 defaults 和 options 对象,并且不修改 defaults 对象。这是常用的插件开发模式。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>合并 defaults 和 options 对象</title>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div id="log"></div>
<script>
$(function () {
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
/*合并默认值和选项,不修改默认对象。*/
var settings = $.extend({}, defaults, options);
var printObj = typeof JSON != "undefined" ? JSON.stringify : function(obj) {
var arr = [];
$.each(obj, function(key, val) {
var next = key + ": ";
next += $.isPlainObject(val) ? printObj(val) : val;
arr.push( next );
});
return "{ " + arr.join(", ") + " }";
};
$("#log").append( "<div><b>defaults -- </b>" + printObj(defaults) + "</div>" );
$("#log").append( "<div><b>options -- </b>" + printObj(options) + "</div>" );
$("#log").append( "<div><b>settings -- </b>" + printObj(settings) + "</div>" );
})
</script>
</body>
</html>
运行结果:
<script>
$(function(){
var object1 ={
apple: 0,
banana: {weight:52,price:100},
cherry: 97
};
var object2 ={
banana: {price:200},durian:100};/* object2 合并到 object1 中*/
$.extend(object1,object2);
var printObj =typeofJSON !="undefined" ?JSON.stringify :function(obj){
var arr =[];
$.each(obj,function(key,val){
var next = key +":";
next += $.isPlainObject(val) ?printObj(val) :val;
arr.push(next);
});
return "{ " +arr.join(",") +" }";};
$("#log").append(printObj(object1));
})
</script>
运行结果:{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
实例2
递归方式合并两个对象
采用递归方式合并两个对象,并修改第一个对象。
源代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>递归方式合并两个对象</title>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div id="log"></div>
<script>
$(function () {
var object1 = {
apple: 0,
banana: { weight: 52, price: 100 },
cherry: 97
};
var object2 = {
banana: { price: 200 },
durian: 100
};
// 将 object2 递归合并到 object1中
$.extend( true, object1, object2 );
// 假设 JSON.stringify - 在 IE版本< 8中无效
$( "#log" ).append( JSON.stringify( object1 ) );
})
</script>
</body>
</html>
运行结果:{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}
实例3
合并 defaults 和 options 对象
合并 defaults 和 options 对象,并且不修改 defaults 对象。这是常用的插件开发模式。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>合并 defaults 和 options 对象</title>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div id="log"></div>
<script>
$(function () {
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
/*合并默认值和选项,不修改默认对象。*/
var settings = $.extend({}, defaults, options);
var printObj = typeof JSON != "undefined" ? JSON.stringify : function(obj) {
var arr = [];
$.each(obj, function(key, val) {
var next = key + ": ";
next += $.isPlainObject(val) ? printObj(val) : val;
arr.push( next );
});
return "{ " + arr.join(", ") + " }";
};
$("#log").append( "<div><b>defaults -- </b>" + printObj(defaults) + "</div>" );
$("#log").append( "<div><b>options -- </b>" + printObj(options) + "</div>" );
$("#log").append( "<div><b>settings -- </b>" + printObj(settings) + "</div>" );
})
</script>
</body>
</html>
运行结果:
defaults -- {"validate":false,"limit":5,"name":"foo"}
options -- {"validate":true,"name":"bar"}
settings -- {"validate":true,"limit":5,"name":"bar"}
0 0
- jQuery中的extend方法
- Jquery的$.extend方法
- jquery extend 方法
- jQuery extend 扩展方法
- jQuery中的extend方法
- jQuery.extend()方法
- jQuery的extend方法
- jquery.extend() 方法详解
- jQuery.extend()方法
- Jquery的extend方法$.extend()学习
- jQuery.extend()方法和jQuery.fn.extend()方法源码分析
- JQuery的extend扩展方法
- JQuery的extend扩展方法
- jquery的extend方法详解
- JQuery的extend方法详解
- JQuery的extend方法详解
- JQuery的extend扩展方法
- jQuery 的 extend 扩展方法
- 【安卓小笔记】应用基础知识
- getRealPath()和getContextPath()的区别
- CSS3--calc()
- 二叉树的路径和
- thinkphp的nginx配置,以及重写隐藏index.php入口文件
- jQuery.extend()方法
- Intellij IDEA建立Maven项目
- 这个智能通风孔,为珠三角创造了百万美金GDP|HWTrek解密百万美金订单是怎样炼成的
- 深度学习算法实践15---堆叠去噪自动编码机(SdA)原理及实现
- 牛顿迭代法求一个数的立方根、平方根
- Vue-router懒加载
- ansible inventory文件 定义host
- ToolBar的title居中以及一些注意事项
- Lua和C++交互详细介绍二