Прототип наследования для клонированного объекта - IE10
Я пытаюсь клонировать объект, используя lodash ' _.clone
,
Тем не менее, я хочу сохранить прототип наследования для клонированного объекта. IE 10 не дает мне доступ __proto__
или даже это Object.setPrototypeOf(toObj, Object.getPrototypeOf(fromObj));
и я не хочу получать доступ через call
или же apply
на родительском объекте, так как есть много методов setter и getter для parent, которые необходимо вызывать из объекта clone.
Любое предложение?
1 ответ
После некоторой попытки я нашел это одно из моих применений:
/**
* Shallow clone an object and retains the prototype chain
* @param {Object} fromObj Object to be cloned
* @returns {Object} Cloned Object
*/
function cloneObj(fromObj) {
var toObj, i;
if (fromObj && typeof fromObj === 'object') {
toObj = new fromObj.constructor();
for (i in fromObj) {
if (fromObj.hasOwnProperty(i)) {
toObj[i] = fromObj[i];
}
}
} else {
throw new Error(fromObj + ' cannot be cloned');
}
return toObj;
}