เรียกใช้ฟังก์ชัน JavaScript
วิธีการใช้ซ้ำ
ด้วยcall()
วิธีนี้ คุณสามารถเขียนวิธีการที่สามารถใช้กับวัตถุต่างๆ ได้
ทุกฟังก์ชันคือเมธอด
ใน JavaScript ฟังก์ชันทั้งหมดเป็นวิธีอ็อบเจ็กต์
ถ้าฟังก์ชันไม่ใช่เมธอดของออบเจ็กต์ JavaScript ฟังก์ชันนั้นเป็นฟังก์ชันของอ็อบเจ็กต์ส่วนกลาง (ดูบทก่อนหน้า)
ตัวอย่างด้านล่างสร้างอ็อบเจ็กต์ที่มีคุณสมบัติ 3 อย่าง ได้แก่ ชื่อ นามสกุล ชื่อเต็ม
ตัวอย่าง
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
// This will return "John Doe":
myObject.fullName();
คีย์เวิร์ดนี้ _
ในนิยามฟังก์ชันthis
หมายถึง "เจ้าของ" ของฟังก์ชัน
ในตัวอย่างข้างต้นthis
เป็นวัตถุบุคคลที่ "เป็นเจ้าของ"
ฟังก์ชันfullName
กล่าวอีกนัยหนึ่งthis.firstNameหมายถึง คุณสมบัติfirstName ของ อ็อบเจกต์นี้
อ่านเพิ่มเติมเกี่ยวกับthis
คำหลักที่JS คำหลักนี้
JavaScript call() Method
เมธอด นี้call()
เป็นเมธอด JavaScript ที่กำหนดไว้ล่วงหน้า
สามารถใช้เพื่อเรียก (เรียก) วิธีการที่มีเจ้าของวัตถุเป็นอาร์กิวเมนต์ (พารามิเตอร์)
ด้วยcall()
วัตถุสามารถใช้วิธีการที่เป็นของวัตถุอื่น
ตัวอย่างนี้เรียก เมธอด fullNameของ person ใช้กับ person1 :
ตัวอย่าง
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
const person2 = {
firstName:"Mary",
lastName: "Doe"
}
// This will return "John Doe":
person.fullName.call(person1);
ตัวอย่างนี้เรียก เมธอด fullNameของ person ใช้กับ person2 :
ตัวอย่าง
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
const person2 = {
firstName:"Mary",
lastName: "Doe"
}
// This will return "Mary Doe"
person.fullName.call(person2);
วิธีการโทร () พร้อมอาร์กิวเมนต์
วิธี การcall()
สามารถยอมรับอาร์กิวเมนต์:
ตัวอย่าง
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName
+ "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.call(person1, "Oslo", "Norway");