การโคลนและผสาน — spread และ Object.assign
โคลนและผสานออบเจ็กต์หรืออาร์เรย์ด้วย spread และ Object.assign ทำความเข้าใจการคัดลอกแบบตื้นและลำดับการเขียนทับ
การโคลนและผสาน — spread และ Object.assign เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 2 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 2 บทเรียน
บทนำ
เป้าหมาย: โคลนและผสานอ็อบเจ็กต์หรืออาร์เรย์อย่างปลอดภัย
- การกระจายเพื่อโคลนหรือผสาน
- Object.assign
- ลำดับการเขียนทับ
- ข้อควรระวังของสำเนาแบบตื้น

การกระจาย: โคลนอ็อบเจ็กต์
ใช้ {...obj} เพื่อสร้างโคลนแบบตื้น การแก้ไขโคลนจะไม่เปลี่ยนฟิลด์ระดับบนสุดในอ็อบเจ็กต์ต้นฉบับ
// Shallow clone with object spread
const user = { name: "Ayla", level: 1 };
const clone = { ...user };
clone.level = 2;
console.log("Original:", user);
console.log("Clone:", clone);

Object.assign: โคลน
Object.assign({}, obj)ก็สร้างโคลนแบบตื้นได้เช่นกัน หลีกเลี่ยงการแก้ไขแหล่งข้อมูลโดยกำหนดค่าลงในอ็อบเจ็กต์ว่าง
// Shallow clone with Object.assign
const settings = { theme: "dark", compact: false };
const copy = Object.assign({}, settings);
copy.compact = true;
console.log("Settings:", settings);
console.log("Copy:", copy);

การผสาน: ลำดับมีความสำคัญ
การผสานขึ้นอยู่กับลำดับ แหล่งข้อมูลที่อยู่ทีหลังจะเขียนทับคีย์ก่อนหน้า โดยในที่นี้ b จะกลายเป็น 9
// Merge: later keys overwrite earlier ones
const base = { a: 1, b: 2 };
const extra = { b: 9, c: 3 };
const mergedSpread = { ...base, ...extra };
const mergedAssign = Object.assign({}, base, extra);
console.log("Spread merged:", mergedSpread);
console.log("Assign merged:", mergedAssign);

การกระจายอาร์เรย์: โคลนและผสาน
[...arr]ใช้โคลนอาร์เรย์ รวมอาร์เรย์ด้วย [...a, ...b] โดยไม่แก้ไขอาร์เรย์เดิม
// Arrays: clone and merge with spread
const nums = [1, 2, 3];
const cloneNums = [...nums];
const more = [4, 5];
const mergedNums = [...nums, ...more];
console.log("nums:", nums);
console.log("clone:", cloneNums);
console.log("merged:", mergedNums);

แบบตื้นเทียบกับแบบลึก
สำเนาแบบตื้น: อ็อบเจ็กต์หรืออาร์เรย์ที่ซ้อนอยู่จะถูกใช้ร่วมกัน สำหรับโครงสร้างแบบลึก ให้คัดลอกแต่ละระดับภายในอย่างชัดเจน
// Shallow copy caveat: nested objects are shared
const original = { user: { name: "Mina" }, active: true };
const shallow = { ...original };
// Mutate nested object
shallow.user.name = "Lena";
console.log("Original:", original);
console.log("Shallow:", shallow);

แบบทดสอบวิธีโคลน
ตรวจสอบอย่างรวดเร็ว: โคลนแบบตื้นโดยไม่แก้ไขข้อมูลเดิม

สรุป
สรุป: โคลนด้วยการกระจายหรือใช้ Object.assign ลงในอ็อบเจ็กต์ว่าง ผสานโดยวางแหล่งข้อมูลที่อยู่ทีหลังไว้ท้ายสุด และจำไว้ว่าสิ่งเหล่านี้เป็นสำเนาแบบตื้น

คำถามที่พบบ่อย
บทเรียน “การโคลนและผสาน — spread และ Object.assign” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การโคลนและผสาน — spread และ Object.assign” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 2 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การโคลนและผสาน — spread และ Object.assign”
โคลนและผสานออบเจ็กต์หรืออาร์เรย์ด้วย spread และ Object.assign ทำความเข้าใจการคัดลอกแบบตื้นและลำดับการเขียนทับ คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 2 บทเรียน
บทเรียน “การโคลนและผสาน — spread และ Object.assign” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม
ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้าง อ่าน อัปเดต ลบในอาร์เรย์ การวนซ้ำ พื้นฐานออบเจ็กต์และการเข้าถึง
- การโคลนและผสาน — spread และ Object.assign