Метод 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.