ก่อนที่จะเข้าใจสำเนาลึกและสำเนาตื้นคุณต้องเข้าใจแนวคิดพื้นฐานบางอย่าง ประเภทตัวแปรที่เก็บไว้ในหน่วยความจำแบ่งออกเป็นประเภทค่าและประเภทอ้างอิง
1. คุณสมบัติการจัดเก็บข้อมูลประเภทการกำหนดค่า: คัดลอกข้อมูลทั้งหมดในตัวแปรและจัดเก็บไว้ในตัวแปรใหม่
ตัวอย่างเช่น: var num = 123; var num1 = num;
หมายเลขที่เก็บไว้ในตัวแปรคือ 123 จากนั้นคัดลอกข้อมูลหนึ่งสำเนาซึ่งหมายถึงการคัดลอก 123 สำเนา จากนั้นมี 2 อาร์เรย์ในหน่วยความจำ; การกำหนดข้อมูลการคัดลอกให้กับ NUM2 คุณลักษณะคือมีสองสำเนาของข้อมูลในหน่วยความจำ สิ่งนี้สามารถเข้าใจได้ว่าเป็นสำเนาตื้น
2. การกำหนดประเภทการอ้างอิง
var o = {ชื่อ: 'Zhang San'};
var obj = o;
การกำหนดหมายถึงการคัดลอกสำเนาของข้อมูลที่เก็บไว้ในตัวแปร O แล้วกำหนดข้อมูลให้ OBJ มี 1 จุดของข้อมูลในหน่วยความจำและแอตทริบิวต์ชื่อที่แก้ไขโดย OBJ จะส่งผลกระทบต่อชื่อใน O
หากโครงสร้างการอ้างอิงทั้งหมดของข้อมูลถูกคัดลอกในสำเนาข้อมูลจะเป็นอิสระในหน่วยความจำและเป็นสำเนาลึก
หากแอตทริบิวต์ของวัตถุปัจจุบันถูกคัดลอกเฉพาะเมื่อการคัดลอกและแอตทริบิวต์เป็นประเภทการอ้างอิงจะไม่ถูกพิจารณาก็เป็นสำเนาตื้น
คัดลอก: คัดลอก มันหมายถึงการคัดลอกข้อมูลวัตถุ
เมื่อพูดถึงสำเนาลึกและสำเนาตื้นจำเป็นต้องตรวจสอบให้แน่ใจว่าคุณสมบัติของวัตถุเป็นประเภทอ้างอิงเช่นกัน
การอภิปรายสั้น ๆ ข้างต้นเกี่ยวกับการคัดลอกและคัดลอกวัตถุลึกและตื้นใน JavaScript เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่ามันจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น