我有两个数组,如下所示。
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/