javascript - Jquery扩展深拷贝

标签 javascript jquery

我有两个数组,如下所示。

var array1=['a','b']
var array2=['b']

我已经使用 $.extend 方法在两个数组之上进行了扩展。

var resArray=$.extend(true,array1,array2);

我得到的输出为

resArray=['b','b']

这看起来很奇怪。 Jquery 扩展深复制功能的行为是否正确?请详细说明。

最佳答案

如果您查看jQuery.extend(),您可以解释该行为。它表示该函数将对象作为输入参数。那么,当数组被视为对象时,它会是什么样子呢?在你的情况下:

var array1 = { 1 : 'a', 2 : 'b'}
var array2 = { 1 : 'b'}

如果对这些使用 jQuery.extend()array1 的属性 1 将被 array2 的属性替换.

关于javascript - Jquery扩展深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31322115/

相关文章:

javascript - 如何通过javascript在html中附加值

php - 从 json 结果创建嵌套 div

javascript - Chart.js 和 PHP

java - 日期应该如何发布到java?

javascript - 在参数顺序错误的地方自由点

javascript - 悬停标记时能够滚动 map 吗?

javascript - 成功或错误消息输入 javascript bootstrap

javascript - jQuery .each 没有返回每个项目的数据,因为它应该

jQuery - 函数后跟同一事件中的 if 条件

javascript - 覆盖 iframe 的 document.write