Нет, это невозможно. Вы не можете получить доступ к памяти, где хранится содержимое объекта, и заменить его другим содержимым, взятым из другого объекта.
Ну, вы можете сделать это, но ограниченным образом. Вы можете изменить содержимое объекта, которое является главным образом свойствами объекта , просто присвоив им новые значения. Вы даже можете поменять его цепочку прототипов с помощью Object.setPrototypeOf
. (Предполагая, что объект не заморожен или не настраивается иным образом).
Но то, что вы абсолютно не можете сделать, это поменять объект для объекта другого внутреннего типа, такого как ваш простой объектно-литеральный объект для экземпляра Date
даже Proxy
. Это принципиально невозможно.
Ваше решение «самая близкая вещь» действительно является самой близкой вещью, которую вы можете сделать, и оно включает в себя назначение новых значений ссылок для всех мест (в вашем случае, переменных), в которых хранилась старая ссылка. Однако вы можете сделать его менее повторяющимся, если ваша функция-обертка поддерживает синтаксис
[guy1, guy2, guy3] = attachProxies(guy1, guy2, guy3);
необходимо смочь опозорить кнопки. Для достигания пера из кода используйте -[NSBundle loadNibNamed:owner:options:]
. Ваше представление должно быть первым объектом в возвращенном массиве.