instanceof
About 1 min
instanceof
Toán tử instanceof được sử dụng để kiểm tra xem thuộc tính prototype của một hàm tạo có xuất hiện trong chuỗi nguyên mẫu của một đối tượng hay không.
Cú pháp:
target instanceof constructor;Kiểm tra kiểu dữ liệu
instanceof được sử dụng để kiểm tra xem một đối tượng có phải là thể hiện của một đối tượng khác hay không.
const Person = function () {};
const student = new Person();
console.log(student instanceof Person);
// trueinstanceof cũng có thể kiểm tra kiểu dữ liệu cha.
function Person() {}
function Student() {}
const p = new Person();
// Kế thừa nguyên mẫu
Student.prototype = p;
const s = new Student();
console.log(s instanceof Student);
// true
console.log(s instanceof Person);
// trueVí dụ khác:
// Kiểu dữ liệu số
console.log(1 instanceof Number);
// false
conosole.log(Infinity instanceof Number);
// false
console.log(Number(2) instanceof Number);
// Kiểu dữ liệu boolean
console.log(true instanceof Boolean);
// false
// Kiểu dữ liệu chuỗi
console.log('' instanceof String);
// false
// Kiểu dữ liệu hàm
const fn = () => console.log('Hello world!');
console.log(fn instanceof Function);
// trueMô phỏng thực thi
function simulateInstanceof(left, right) {
if (left === null || (typeof left !== 'object' && typeof left !== 'function')) return false;
// Duyệt qua chuỗi nguyên mẫu
while (true) {
// Object.prototype.__proto__ === null
if (left === null) return false;
// Điểm quan trọng ở đây: Trả về true khi left chính xác bằng prototype
if (left === right.prototype) return true;
left = left.__proto__;
}
}