Какой наиболее эффективный способ клонировать объект в JavaScript?

Я пробовал что-то вроде:

obj = eval(uneval(o));

однако такое сработало только для Firefox. В Mootools 1.2, я делал такие вещи, как

obj = JSON.decode(JSON.encode(o));

но возникает вопрос эффективности.

Также я встречал рекурсивные функции копирования с различными недостатками. Существуют ли какие то канонические решения?

Найдено 33 ответа:

Most efficient way to clone an object?

http://stackoverflow.com/questions/122102/most-efficient-way-to-clone-an-object

Посмотреть решение →