การโคลน เป็นเพียงการคัดลอกวัตถุจากตัวแปรหนึ่งไปยังอีกตัวแปรหนึ่ง การโคลนอย่างง่ายโดยใช้ ตัวดำเนินการมอบหมาย ไม่ได้ผลตามความตั้งใจของเรา เมื่อเกิดการโคลนนิ่ง การเปลี่ยนแปลงในตัวแปรใดๆ ไม่ควรสะท้อนถึงการเปลี่ยนแปลงใดๆ ในตัวแปรอื่น แต่ในกรณีของ ผู้ปฏิบัติงานที่ได้รับมอบหมาย การเปลี่ยนแปลงในตัวแปรใด ๆ จะสะท้อนให้เห็นในตัวแปรอื่นอย่างแน่นอน ดังนั้นเพื่อลดข้อเสียเปรียบนี้ 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\"}"