क्लोनिंग एक ऑब्जेक्ट को एक वेरिएबल से दूसरे वेरिएबल में कॉपी करने के अलावा कुछ नहीं है। असाइनमेंट ऑपरेटर का उपयोग करके सरल क्लोनिंग हमारे इरादों के अनुसार काम नहीं करती। जब क्लोनिंग होती है, तो किसी भी वेरिएबल में परिवर्तन दूसरे वेरिएबल में किसी भी प्रकार के परिवर्तन को प्रतिबिंबित नहीं करना चाहिए। लेकिन असाइनमेंट ऑपरेटर के मामले में, किसी भी वेरिएबल में परिवर्तन निश्चित रूप से दूसरे वेरिएबल में प्रतिबिंबित होगा। इसलिए इस कमी को कम करने के लिए ES6 ने स्प्रेड ऑपरेटर प्रदान किया है।
उदाहरण
निम्न उदाहरण में, क्लोनिंग असाइनमेंट ऑपरेटर का उपयोग करके की गई है। इसलिए एक वेरिएबल में परिवर्तन दूसरे वेरिएबल में प्रतिबिंबित होता है।
<html> <body> <script> var org = {org1 : "Serveneedy", org2 : "Praveenlatha", org3 : "Redcross" }; document.write(JSON.stringify("without change org : " + " " + JSON.stringify(org))); var neworg = org; org.org1 = "gatesfoundation"; document.write("</br>"); document.write(JSON.stringify("with change org : " + " " + JSON.stringify(org))); document.write("</br>"); document.write(JSON.stringify("change also reflected in neworg : " + " " + JSON.stringify(neworg))); </script> </body> </html>
आउटपुट
"without change org : {\"org1\":\"Serveneedy\",\"org2\":\"Praveenlatha\",\"org3\":\"Redcross"}" "with change org : {\"org1\":\"gatesfoundation\",\"org2\":\"Praveenlatha\",\"org3\":\"Redcross"}" "change also reflected in neworg :{\"org1\":\"gatesfoundation\",\"org2\":\"Praveenlatha\",\"org3\":\"Redcross"}"
उदाहरण
निम्न उदाहरण में स्प्रेड ऑपरेटर का उपयोग किया गया है इसलिए मूल ऑब्जेक्ट में परिवर्तन क्लोन किए गए ऑब्जेक्ट में प्रतिबिंबित नहीं होता।
<html> <body> <script> var org = {org1 : "Serveneedy", org2 : "Praveenlatha", org3 : "Redcross" }; document.write(JSON.stringify("without change org : " + " " + JSON.stringify(org))); var neworg = {...org}; org.org1 = "gatesfoundation"; document.write("</br>"); document.write(JSON.stringify("with change org : " + " " + JSON.stringify(org))); document.write("</br>"); document.write(JSON.stringify("change also reflected in neworg" + " " + JSON.stringify(neworg))); </script> </body> </html>
आउटपुट
"without change org : {\"org1\":\"Serveneedy\",\"org2\":\"Praveenlatha\",\"org3\":\"Redcross"}" "with change org : {\"org1\":\"gatesfoundation\",\"org2\":\"Praveenlatha\",\"org3\":\"Redcross"}" "change also reflected in neworg : {\"org1\":\"Serveneedy\",\"org2\":\"Praveenlatha\",\"org3\":\"Redcross"}"