Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ตัวดำเนินการ Instanceof ใน JavaScript


ตัวอย่างของผู้ปฏิบัติงานจะทดสอบว่าคุณสมบัติต้นแบบของตัวสร้างปรากฏที่ใดก็ได้ในสายโซ่ต้นแบบของวัตถุหรือไม่ ในภาษาที่ง่ายกว่า จะทดสอบว่าตัวแปรเป็นประเภทใดประเภทหนึ่งหรือไม่ แต่มีข้อแม้บางประการ เรามาดูตัวอย่างกัน

พื้นฐาน

สตริงและตัวเลขเป็นค่าดั้งเดิม ไม่ใช่วัตถุ ดังนั้นจึงไม่มี [[ต้นแบบ]] ดังนั้นจะใช้งานได้ก็ต่อเมื่อคุณรวมค่าไว้ในวัตถุปกติเท่านั้น

ตัวอย่าง

console.log(1 instanceof Number)
console.log(new Number(1) instanceof Number)
console.log("" instanceof String)
console.log(new String("") instanceof String)

ผลลัพธ์

false
true
false
true

ฟังก์ชันที่สร้างได้

ฟังก์ชันที่ส่งคืนอ็อบเจ็กต์ (JS Classes) สามารถตรวจสอบอ็อบเจ็กต์ได้โดยใช้ตัวดำเนินการ instanceof

ตัวอย่าง

function Person(name) {
   this.name = name
}
let john = new Person("John");
console.log(john instanceof Person)

ผลลัพธ์

true

มรดก

JS รองรับการสืบทอดต้นแบบ ดังนั้น หากคุณตรวจสอบอินสแตนซ์ของคลาสใดๆ ในลำดับชั้น ค่าจะคืนค่าเป็นจริง

ตัวอย่าง

class Person {}
class Student extends Person {
   constructor(name) {
      super()
      this.name = name
   }
}
let john = new Student("John");
console.log(john instanceof Person)
console.log(john instanceof Student)

ผลลัพธ์

true