2013-11-27 6 views
1

Хорошо, я переписываю это, потому что люди все время неверно истолковывали его.Замените свойства объекта на свойства объекта

Указанные два объекта x и y, я хочу, чтобы заменить все свойства x с тем из y.

(Обратите внимание, что это не регулярно Клонирование, как это подразумевает создание нового объекта (z). Объект x должен быть обновлен, а не заменить.)

Моя идея заключается в том, что можно было бы сделать это используя две петли for-in (с проверками hasOwnProperty), один для удаления всего: от x и один для копирования всего: от y до x, но это как-то похоже на уродливое решение.

Есть ли еще более элегантный способ сделать это? Есть ли в JavaScript (или, возможно, jQuery) встроенная функция для копирования состояния одного объекта в другой объект, который уже существует ?

+0

Посмотрите это - http://stackoverflow.com/questions/122102/most-efficient-way-to-clone-an-object –

+0

@Pushpesh: Я не говорю о создании нового объекта, который является клоном, Я говорю о превращении ** существующего объекта ** в клон. – Smallhacker

+0

Также проверьте шаблон дизайна [Prototype] (http://sourcemaking.com/design_patterns/prototype). – Dan

ответ

1

Я думаю, что jQuery.extend() - это то, что вы ищете.

+0

Хм, кажется, 2/3 того, что мне нужно. (Он добавляет и заменяет, но по очевидным причинам, учитывая то, что его предназначение использует, не удаляет.) Даже тогда я думаю, что я могу жить с ручной очисткой 'x' перед вызовом этого. :) – Smallhacker

Смежные вопросы