ใช้ ฟังก์ชัน JavaScript
วิธีการใช้ซ้ำ
ด้วยapply()
วิธีนี้ คุณสามารถเขียนวิธีการที่สามารถใช้กับวัตถุต่างๆ ได้
JavaScript ใช้ () วิธีการ
วิธี การapply()
นี้คล้ายกับcall()
วิธีการ (บทที่แล้ว)
ในตัวอย่างนี้ใช้วิธีfullNameของpersonกับperson1 :
ตัวอย่าง
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// This will return "Mary Doe":
person.fullName.apply(person1);
ความแตกต่างระหว่างการโทร() และการสมัคร()
ความแตกต่างคือ:
วิธีการแยกcall()
อาร์กิวเมนต์
วิธี การapply()
รับอาร์กิวเมนต์เป็นอาร์เรย์
วิธีการ Apply() มีประโยชน์มากหากคุณต้องการใช้อาร์เรย์แทนรายการอาร์กิวเมนต์
วิธีการใช้() วิธีการกับอาร์กิวเมนต์
วิธี การapply()
รับอาร์กิวเมนต์ในอาร์เรย์:
ตัวอย่าง
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName
+ "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);
เปรียบเทียบกับ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");
จำลองวิธีการสูงสุดในอาร์เรย์
คุณสามารถค้นหาจำนวนที่มากที่สุด (ในรายการตัวเลข) โดยใช้Math.max()
วิธีการ:
ตัวอย่าง
Math.max(1,2,3); // Will return 3
เนื่องจาก อาร์เรย์ JavaScript ไม่มีเมธอด max() คุณจึงใช้
Math.max()
วิธีนี้แทนได้
ตัวอย่าง
Math.max.apply(null, [1,2,3]); // Will also return 3
อาร์กิวเมนต์แรก (null) ไม่สำคัญ ไม่ได้ใช้ในตัวอย่างนี้
ตัวอย่างเหล่านี้จะให้ผลลัพธ์เช่นเดียวกัน:
ตัวอย่าง
Math.max.apply(Math, [1,2,3]); // Will also return 3
ตัวอย่าง
Math.max.apply(" ", [1,2,3]); // Will also return 3
ตัวอย่าง
Math.max.apply(0, [1,2,3]); // Will also return 3
JavaScript โหมดเข้มงวด
ในโหมดเข้มงวดของ JavaScript หากอาร์กิวเมนต์แรกของapply()
เมธอดไม่ใช่อ็อบเจ็กต์ มันจะกลายเป็นเจ้าของ (อ็อบเจ็กต์) ของฟังก์ชันที่เรียกใช้ ในโหมด "ไม่เข้มงวด" มันจะกลายเป็นวัตถุส่วนกลาง