[英]JavaScript: Deep Copy Image() Object
我有此对象合并功能:
function merge( obj1, obj2 )
{
var result = {};
for( var prop in obj1 )
{
if( obj2.hasOwnProperty(prop) )
{
if( 'object' === typeof obj1[prop] && 'object' === typeof obj2[prop] )
{
result[prop] = merge( obj1[prop], obj2[prop] );
}
else
{
result[prop] = obj2[prop];
}
}
else
{
result[prop] = obj1[prop];
}
}
return result;
};
此功能的目的是将两个对象合并为一个,如果存在,则用obj2的值覆盖obj1的值。
它适用于大多数对象,但是当我尝试使用它合并两个Image()
对象时,我陷入了无限循环。 例如:
merge(new Image(), new Image())
结果是:
Uncaught RangeError: Maximum call stack size exceeded
我认为这与对象的事件有关,但我不确定。 您为什么认为这是这种情况,如何改进此功能以解决此问题?
首先是null是一个对象,因此您要为所有null调用merge。
第二有财产
ownerDocument
所以您正在遍历...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.