ตัวอย่างของผู้ปฏิบัติงานจะทดสอบว่าคุณสมบัติต้นแบบของตัวสร้างปรากฏที่ใดก็ได้ในสายโซ่ต้นแบบของวัตถุหรือไม่ ในภาษาที่ง่ายกว่า จะทดสอบว่าตัวแปรเป็นประเภทใดประเภทหนึ่งหรือไม่ แต่มีข้อแม้บางประการ เรามาดูตัวอย่างกัน
พื้นฐาน
สตริงและตัวเลขเป็นค่าดั้งเดิม ไม่ใช่วัตถุ ดังนั้นจึงไม่มี [[ต้นแบบ]] ดังนั้นจะใช้งานได้ก็ต่อเมื่อคุณรวมค่าไว้ในวัตถุปกติเท่านั้น
ตัวอย่าง
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