Не пойму работу Object.assign() для documentElement?

Метод Object.assign() в JavaScript используется для копирования значений всех перечислимых собственных свойств одного или нескольких исходных объектов в целевой объект. Изначально этот метод был представлен для работы с объектами, но в некоторых случаях он также может быть использован для работы с элементами DOM.

Element.documentElement (или document.documentElement) представляет элемент <html> всего документа. Этот элемент является контейнером для всех остальных элементов документа. Доступ к нему можно получить с помощью свойства documentElement объекта Document.

Когда мы используем метод Object.assign() для document.documentElement, мы, по сути, копируем значения всех перечислимых собственных свойств исходного элемента <html> в целевой объект. Начиная с ECMAScript 2018, свойства Proxy, недоступные для перечисления, не будут скопированы.

Например, допустим, есть два элемента <html>: source и target.

const source = document.querySelector("#source");
const target = document.querySelector("#target");

Если мы применим Object.assign() следующим образом:

Object.assign(target, source);

То все перечислимые собственные свойства элемента source будут скопированы в элемент target. Это может быть полезно, например, когда мы хотим скопировать определенные стили или атрибуты с одного элемента на другой.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Object.assign() для documentElement</title>
    <style>
      #source {
        background-color: yellow;
      }

      #target {
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <div id="source">
      <h1>Hello, World!</h1>
    </div>
    <div id="target"></div>

    <script>
      const source = document.querySelector("#source");
      const target = document.querySelector("#target");
      Object.assign(target, source);
    </script>
  </body>
</html>

В данном примере, после применения Object.assign(), элемент target будет иметь такие же стили, как и элемент source, и его фон также станет желтым.

Помимо этого, Object.assign() может использоваться для копирования свойств из одного JavaScript-объекта в другой объект, что особенно удобно, когда нам нужно скопировать все или некоторые свойства одного объекта в другой без модификации исходного объекта.

В целом, Object.assign() - это удобный метод для копирования свойств объектов в JavaScript и может использоваться для работы с DOM-элементами, включая document.documentElement.