Прототип наследования для клонированного объекта - 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;
}
Другие вопросы по тегам