Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เมธอด call() ใน JavaScript คืออะไร

เมธอด call() ใน JavaScript ใช้เพื่อ เรียกฟังก์ชันพร้อมกำหนดค่า this เอง และส่งอาร์กิวเมนต์ทีละตัว (ไม่ใช่อาร์เรย์เหมือน apply())

ไวยากรณ์

func.call(thisArg, arg1, arg2, ...)

ตัวอย่าง

การยืมเมธอด fullName จากออบเจ็กต์ person มาใช้กับ myObject:

<html>
  <head>
    <script>
      var person = {
        Name: "John",
        Department: "Finance",
        fullName: function() {
          return this.Name + " is from " + this.Department + " Department";
        }
      };

      var myObject = {
        Name: "Amit",
        Department: "Marketing"
      };

      var x = person.fullName.call(myObject);
      document.write(x);
    </script>
  </head>
  <body>
  </body>
</html>

ผลลัพธ์

Amit is from Marketing Department

การใช้งานหลัก

  • Method Borrowing: ใช้เมธอดของออบเจ็กต์หนึ่งกับอีกออบเจ็กต์หนึ่ง
  • Constructor Chaining: เรียก constructor ของ parent class
  • ตั้งค่า this ให้ชัดเจน: หลีกเลี่ยงปัญหา this ใน callback หรือ event handler

เปรียบเทียบ: call() รับพารามิเตอร์ทีละตัว | apply() รับเป็นอาร์เรย์ | bind() คืนค่าเป็นฟังก์ชันใหม่พร้อมผูก this ไว้