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