Nhân bản không là gì khác ngoài việc sao chép một đối tượng từ biến này sang biến khác. Sao chép đơn giản bằng cách sử dụng toán tử gán không hoạt động theo ý định của chúng tôi. Khi quá trình nhân bản diễn ra, một thay đổi trong bất kỳ biến nào không được phản ánh bất kỳ loại thay đổi nào trong biến khác. Nhưng trong trường hợp của toán tử gán , một thay đổi trong bất kỳ biến nào chắc chắn sẽ phản ánh trong một biến khác. Vì vậy, để giảm bớt nhược điểm này, ES6 đã cung cấp toán tử trải rộng .
Ví dụ
Trong ví dụ sau, sao chép được thực hiện bằng cách sử dụng toán tử spread . Vì vậy, một thay đổi trong một biến được phản ánh trong một biến khác.
<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>
Đầu ra
"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\"}"
Ví dụ
Trong ví dụ sau toán tử spread được sử dụng để thay đổi đối tượng ban đầu không phản ánh trong đối tượng được nhân bản.
<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>
Đầu ra
"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\"}"