[英]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.