JavaScript 中的 extend 方法
JavaScript 库 jQuery 的 extend
方法采用 4 个参数(deep
、target
、object1
、objectN
)。驱动是通过将两个或多个对象的内容与第一个(target
)对象合并来修改 target
对象。
deep
参数可以是 true
并且不跟进 false
。启用 true
可防止某些内容被覆盖,并且合并操作发生在显式内容上。
使用 $.extend()
函数覆盖 JavaScript 中的内容
我们将开始声明 object1
和 object2
。$.extend()
函数将采用两个参数,因此操作代码行将是 $.extend( object1, object2)
。
在这种情况下,我们的 target
是 object1
,object1
将与 object2
的内容合并。object2
内容将覆盖 object1
的内容,其中存在类似的 key
值。
代码片段:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
<div id="show"></div>
<script>
var object1 = {
chocolate: 0,
mozzarella: { weight: 500, price: 50 },
butter: 100
};
var object2 = {
mango: { price: 200 },
kiwi: 100,
mozzarella: { price: 60 }
};
// Merge object2 into object1
$.extend( object1, object2 );
$( "#show" ).append( JSON.stringify( object1 ) );
</script>
</body>
</html>
输出:
你会注意到 object2
内容完全覆盖了 object1
的 mozzarella
键。 $.extend()
方法在没有 deep
参数的情况下执行。
在 JavaScript 中使用带有 deep
参数的 $.extend()
函数
此示例将有一个带有不同操作代码行的附加参数。deep
参数递归检查内容并更改特定位置。
语法:
$.extend(true, object1, object2)
代码片段:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
<div id="show"></div>
<script>
var object1 = {
chocolate: 0,
mozzarella: { weight: 500, price: 50 },
butter: 100
};
var object2 = {
mango: { price: 200 },
kiwi: 100,
mozzarella: { price: 60 }
};
// Merge object2 into object1
$.extend( true, object1, object2 );
$( "#show" ).append( JSON.stringify( object1 ) );
</script>
</body>
</html>
输出:
输出给 target
对象一个特定的合并。你将看到 object2
内容键 mozzarella
值仅合并到特定子键 price
。
weight
子键没有被覆盖,因为 true
参数使操作更有效。
在 JavaScript 中使用 $.extend()
函数与 Target
合并而不更改其内容
对于最后一个示例,我们将使用空的 {}
对象更改 deep
参数,该对象将承担对合并对象的修改。
语法:
$.extend({}, object1, object2).
代码片段:
HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
<div id="show"></div>
</body>
</html>
JavaScript:
var object1 = {
chocolate: 0,
mozzarella: {weight: 500, price: 50},
};
var object2 = {
mango: {price: 200},
kiwi: 100,
};
// Merge object2 into object1
var object3 = $.extend({}, object1, object2);
$('#show').append('<div><b>obj1 = </b>' + JSON.stringify(object1) + '</div>');
$('#show').append('<div><b>obj2 = </b>' + JSON.stringify(object2) + '</div>');
$('#show').append('<div><b>obj3 = </b>' + JSON.stringify(object3) + '</div>');
输出:
object3
包含 object1
和 object2
的合并版本,我们还能够打印未受影响的对象。
相关文章
JavaScript 关联数组和哈希表
发布时间:2024/03/22 浏览次数:75 分类:JavaScript
-
本教程展示了使用对象和 Map() 函数实现 JavaScript 关联数组和哈希表。
JavaScript ArrayBuffer
发布时间:2024/03/22 浏览次数:147 分类:JavaScript
-
在本文中,学习 JavaScript 中的 ArrayBuffer 对象。我们将通过不同的示例介绍如何创建和操作 ArrayBuffer 对象。
在 Visual Studio Code 中运行 JavaScript
发布时间:2024/03/22 浏览次数:64 分类:JavaScript
-
本教程将指导你如何在 Visual Studio Code 中运行 JavaScript 代码。
在 JavaScript 中返回 False
发布时间:2024/03/21 浏览次数:166 分类:JavaScript
-
本文解释 JavaScript 中的 return false 和 preventDefault 语句;何时何地使用这些语句,它们之间有什么区别。
使用 JavaScript 将 HTML 表格导出到 Excel
发布时间:2024/03/21 浏览次数:151 分类:JavaScript
-
本教程演示了如何使用 JavaScript 将 HTML 表格数据导出到 Excel。
用 JavaScript 读取 Excel 文件
发布时间:2024/03/21 浏览次数:87 分类:JavaScript
-
在本文中,我们将了解如何在 JavaScript 中读取和解析 excel 文件。