Computer >> Máy Tính >  >> Lập trình >> Javascript

Toán tử Instanceof trong JavaScript

Ví dụ của toán tử kiểm tra xem thuộc tính nguyên mẫu của một phương thức khởi tạo có xuất hiện ở bất kỳ đâu trong chuỗi nguyên mẫu của một đối tượng hay không. Trong một ngôn ngữ đơn giản hơn, nó kiểm tra xem một biến có thuộc một kiểu nhất định hay không. Nhưng nó có một vài lưu ý. Hãy để chúng tôi xem xét một số ví dụ.

Nguyên thủy

Chuỗi và số là các giá trị nguyên thủy, không phải đối tượng và do đó không có [[Nguyên mẫu]], vì vậy nó sẽ chỉ hoạt động nếu bạn bọc chúng trong các đối tượng thông thường.

Ví dụ

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

Đầu ra

false
true
false
true

Các hàm có thể cấu trúc

Các hàm trả về đối tượng của chúng (Lớp JS) có thể kiểm tra đối tượng của chúng bằng cách sử dụng toán tử instanceof.

Ví dụ

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

Đầu ra

true

Kế thừa

JS hỗ trợ tính kế thừa nguyên mẫu, vì vậy nếu bạn kiểm tra instanceof cho bất kỳ lớp nào trong hệ thống phân cấp, nó sẽ trả về true.

Ví dụ

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)

Đầu ra

true
true