<div id="original-element">
    <div id="first">First</div>
    <div id="second">Second</div>
</div>
/*
 * 원본 노드
*/
const original = document.getElementById("original-element");


/*
 * 얕은 복제(자손 노드 없이 복제)
 * 자신만 복제(노드의 모든 속성과 그 값도 복제)
*/
const shallowClone = original.cloneNode();

// 자손 노드 제외한 자신 노드 객체를 반환
console.log(shallowClone);
/* 출력:
<div id="original-element"></div>
*/


/*
 * 깊은 복제(자손 노드 포함 복제)
 * 자손 노드 포함하여 복제(노드의 모든 속성과 그 값도 복제)
*/
const deepClone = original.cloneNode(true);

// 자손 노드 포함한 자신 노드 객체를 반환
console.log(deepClone);
/* 출력:
<div id="original-element">
    <div id="first">First</div>
    <div id="second">Second</div>
</div>
*/
// 얕은 복제(자손 노드 없이 복제)
node.cloneNode()

// 깊은 복제(자손 노드 포함 복제)
node.cloneNode(deep)
<ol id="fruits">
    <li>사과</li>
    <li>바나나</li>
    <li style="color: red;">복숭아</li>
</ol>
<button type="button">마지막 자식 요소 복제하기</button>
const fruitList = document.getElementById("fruits");
const button = document.querySelector("button");

button.addEventListener("click", () => { // 버튼 클릭 이벤트
    // 마지막 자식 요소 가져오기
    const lastChildLi = fruitList.lastElementChild;

    // 마지막 자식 요소를 복제하기
    const cloneChild = lastChildLi.cloneNode(true); // 자손 노드인 텍스트까지 모두 복제됩니다.

    // 부모 노드 안쪽 끝 부분, 즉 마지막 자식으로 복제한 노드 삽입하기
    fruitList.appendChild(cloneChild);
});
실제 적용된 모습 '버튼'을 실제로 클릭해 보세요!