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

พื้นฐาน this และ call/apply/bind (บทนำ)

ทำความเข้าใจว่า this อ้างถึงอะไรในฟังก์ชันและเมธอด เรียนรู้ this ของฟังก์ชันลูกศร และทดลองใช้ call/apply/bind

พื้นฐาน this และ call/apply/bind (บทนำ) เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

บทนำเกี่ยวกับบริบทปัจจุบัน

เป้าหมาย: ดูว่าบริบทปัจจุบันอ้างถึงอะไรในการเรียกใช้รูปแบบต่าง ๆ เรียนรู้บริบทปัจจุบันของฟังก์ชันลูกศร และทดลองใช้ call/apply/bind ทีละขั้นอย่างง่าย

  • การเรียกใช้ผ่านเมธอดเทียบกับการเรียกใช้แบบปกติ
  • บริบทปัจจุบันของฟังก์ชันลูกศร
  • call/apply/bind
พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 1

บริบทปัจจุบันเมื่อเรียกใช้เมธอด

ในการเรียกใช้เมธอด บริบทปัจจุบันจะชี้ไปยังอ็อบเจ็กต์ที่อยู่หน้าจุด

// Method call: this is the object before the dot
const user = {
  name: "Ayla",
  say() {
    console.log("I am", this.name);
  }
};

user.say();
พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 2

บริบทปัจจุบันเมื่อเรียกใช้แบบปกติ

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

// Plain function call: this is undefined in strict mode
function show() {
  console.log("this is", this);
}

show();
พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 3

บริบทของฟังก์ชันลูกศร (ตามขอบเขต)

ฟังก์ชันลูกศรจะใช้บริบทปัจจุบันจากขอบเขตภายนอก เหมาะอย่างยิ่งสำหรับฟังก์ชันเรียกกลับภายในเมธอด

// Arrow functions do not have their own this
// They capture this from the surrounding scope
const team = {
  title: "Blue",
  start() {
    const report = () => {
      console.log("Team:", this.title);
    };
    report();
  }
};

team.start();
พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 4

call เทียบกับ apply

call และ apply จะเรียกใช้ฟังก์ชันทันที โดยกำหนดบริบทปัจจุบันตามที่ระบุ

// call/apply invoke the function with a chosen this
function intro(lang1, lang2) {
  console.log("User:", this.name, "knows", lang1, "and", lang2);
}

const person = { name: "Mina" };

// call passes arguments normally
intro.call(person, "JS", "TS");

// apply passes arguments as an array
intro.apply(person, ["JS", "TS"]);
พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 5

พื้นฐาน bind

bind จะส่งคืนฟังก์ชันใหม่ที่จดจำบริบทปัจจุบันที่เลือกไว้สำหรับการเรียกใช้ในอนาคต

// bind creates a new function with this fixed
function sayHi() {
  console.log("Hi from", this.name);
}

const dev = { name: "Lena" };

const sayHiFromLena = sayHi.bind(dev);

sayHiFromLena();
sayHiFromLena();
พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 6

แบบทดสอบ bind เทียบกับ call/apply

ตรวจสอบอย่างรวดเร็ว: การกำหนดบริบทปัจจุบัน

พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 7

สรุป

สรุป: การเรียกใช้เมธอดจะกำหนดบริบทปัจจุบันเป็นอ็อบเจ็กต์ การเรียกใช้แบบปกติจะมีบริบทปัจจุบันเป็นค่าที่ไม่ได้กำหนดในโหมดเข้มงวด ฟังก์ชันลูกศรจะจับบริบทปัจจุบันจากขอบเขตภายนอก call/apply จะกำหนดบริบทนี้สำหรับการเรียกใช้ครั้งเดียว และ bind จะกำหนดบริบทนี้ไว้สำหรับการเรียกใช้ภายหลัง

พื้นฐาน this และ call/apply/bind (บทนำ) — ภาพประกอบ 8

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

บทเรียน “พื้นฐาน this และ call/apply/bind (บทนำ)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน this และ call/apply/bind (บทนำ)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน this และ call/apply/bind (บทนำ)”

ทำความเข้าใจว่า this อ้างถึงอะไรในฟังก์ชันและเมธอด เรียนรู้ this ของฟังก์ชันลูกศร และทดลองใช้ call/apply/bind คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน

บทเรียน “พื้นฐาน this และ call/apply/bind (บทนำ)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม

ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การประกาศกับนิพจน์ และพื้นฐานฟังก์ชันลูกศร
  2. พารามิเตอร์ ค่าเริ่มต้น ส่วนที่เหลือ และค่าที่ส่งกลับ
  3. พื้นฐาน this และ call/apply/bind (บทนำ)
← กลับไปที่ JavaScript Academy