ตามเนื้อผ้า เรามีวัตถุที่มี วิธีการ เฉพาะของตัวเอง และ คุณสมบัติ . ใช้ apply() ฟังก์ชั่น เราสามารถสร้างวิธีการที่สามารถเข้าถึงวัตถุที่กำหนดทั้งหมดรวมกันได้
จริงๆ แล้ว วิธีนี้ใช้ได้ผลเหมือนกับ call() ฟังก์ชัน แต่เมื่อมีความจำเป็นต้องส่งผ่านอาร์เรย์เช่นตัวแปร apply() ฟังก์ชั่นมาในรูปภาพ
ในตัวอย่างต่อไปนี้ องค์ประกอบหลายรายการ ถูกเรียกทีละรายการจึงไม่จำเป็นต้องใช้ apply() ทำหน้าที่แทน call() ใช้ฟังก์ชัน
ตัวอย่าง
<html> <body> <script> var obj = {num : 10}; var mul = function(i, j, k){ return this.num * i*j*k; } document.write(mul.call(obj,6,3,4)); </script> </body> </html>
ผลลัพธ์
720
ในตัวอย่างต่อไปนี้แทนที่จะเป็นแต่ละองค์ประกอบ เมื่อ อาร์เรย์ ผ่านไปแล้ว call() ฟังก์ชั่นกลับมา NaN ในขณะที่ ใช้() ฟังก์ชั่นส่งกลับค่า นี่เป็นเพราะว่า call() ฟังก์ชันไม่สามารถเข้าถึงอาร์เรย์ได้
ตัวอย่าง
<html> <body> <script> var obj = {num : 10}; var mul = function(i, j, k){ return this.num * i*j*k; } var array = [6,3,4] document.write(mul.call(obj,array)); document.write("</br>"); document.write(mul.apply(obj,array)); </script> </body> </html>
ผลลัพธ์
NaN 720