ví dụ
Toán hạng bên tay trái (LHS) là đối tượng thực tế đang được thử nghiệm với toán hạng bên tay phải (RHS) là hàm tạo thực tế của một lớp. Định nghĩa cơ bản là:
Checks the current object and returns true if the object
is of the specified object type.
Dưới đây là một số ví dụ hay và đây là một ví dụ được lấy trực tiếp từ trang web dành cho nhà phát triển của Mozilla :
var color1 = new String("green");
color1 instanceof String; // returns true
var color2 = "coral"; //no type specified
color2 instanceof String; // returns false (color2 is not a String object)
Một điều đáng nói là được instanceof
đánh giá là đúng nếu đối tượng kế thừa từ nguyên mẫu của classe:
var p = new Person("Jon");
p instanceof Person
Đó là p instanceof Person
sự thật vì p
kế thừa từ Person.prototype
.
Theo yêu cầu của OP
Tôi đã thêm một ví dụ nhỏ với một số mã mẫu và giải thích.
Khi bạn khai báo một biến bạn cung cấp cho nó một loại cụ thể.
Ví dụ:
int i;
float f;
Customer c;
Trên đây chỉ cho bạn một số biến, cụ thể là i
, f
, và c
. Các loại là integer
, float
và một Customer
kiểu dữ liệu do người dùng xác định . Các loại như ở trên có thể dành cho bất kỳ ngôn ngữ nào, không chỉ JavaScript. Tuy nhiên, với JavaScript khi bạn khai báo một biến bạn không xác định rõ ràng một loại var x
, x có thể là một số / chuỗi / kiểu dữ liệu do người dùng xác định. Vì vậy, những gì instanceof
nó kiểm tra đối tượng để xem nếu nó thuộc loại được chỉ định để từ trên lấy Customer
đối tượng chúng ta có thể làm:
var c = new Customer();
c instanceof Customer; //Returns true as c is just a customer
c instanceof String; //Returns false as c is not a string, it's a customer silly!
Ở trên chúng tôi đã thấy rằng c
đã được tuyên bố với các loại Customer
. Chúng tôi đã mới và kiểm tra xem nó có phải là loại Customer
hay không. Chắc chắn là, nó trả về đúng sự thật. Sau đó vẫn sử dụng Customer
đối tượng chúng ta kiểm tra nếu nó là a String
. Không, chắc chắn không phải là String
chúng tôi mới một Customer
đối tượng không phải là một String
đối tượng. Trong trường hợp này, nó trả về false.
Nó thật sự đơn giản!