Это более или менее невозможно - стратегия оценки Javascript заключается в том, чтобы всегда использовать вызов по значению, но в случае объектов (включая массивы) передаваемое значение является ссылкой на объект, который не копируется и не клонируется. Если вы переназначите сам объект в функции, оригинал не будет изменен, но если вы переназначите одно из свойств объекта, это повлияет на исходный объект.
Тем не менее, что вы пытаетесь достичь? Если он просто передает сложные данные между C ++ и Javascript, вы можете использовать библиотеку JSON для связи. Отправьте объект JSON в C ++ для обработки и получите объект JSON для замены старого.