0Pricing
JavaScript Academy · บทเรียน

การโคลนและผสาน — 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
  • ลำดับการเขียนทับ
  • ข้อควรระวังของสำเนาแบบตื้น
การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 1

การกระจาย: โคลนอ็อบเจ็กต์

ใช้ {...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);
การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 2

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);
การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 3

การผสาน: ลำดับมีความสำคัญ

การผสานขึ้นอยู่กับลำดับ แหล่งข้อมูลที่อยู่ทีหลังจะเขียนทับคีย์ก่อนหน้า โดยในที่นี้ 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);
การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 4

การกระจายอาร์เรย์: โคลนและผสาน

[...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);
การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 5

แบบตื้นเทียบกับแบบลึก

สำเนาแบบตื้น: อ็อบเจ็กต์หรืออาร์เรย์ที่ซ้อนอยู่จะถูกใช้ร่วมกัน สำหรับโครงสร้างแบบลึก ให้คัดลอกแต่ละระดับภายในอย่างชัดเจน

// 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);
การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 6

แบบทดสอบวิธีโคลน

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

การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 7

สรุป

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

การโคลนและผสาน — spread และ Object.assign — ภาพประกอบ 8

คำถามที่พบบ่อย

บทเรียน “การโคลนและผสาน — 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้าง อ่าน อัปเดต ลบในอาร์เรย์ การวนซ้ำ พื้นฐานออบเจ็กต์และการเข้าถึง
  2. การโคลนและผสาน — spread และ Object.assign
← กลับไปที่ JavaScript Academy