【前端手写代码】手写instanceof方法

instanceof运算符用于判断构造函数的prototype属性是否出现在对象的原型链中的任何位置。

实现步骤:

1、首先获取类型的原型;

2、然后获取对象的原型;

3、然后一直循环判断对象的原型是否等于类型的原型,直到对象原型为null,因为原型链最终为null

具体实现:

javascript 复制代码
function myInstanceof(left, right) {
    let proto = Object.getPrototypeOf(left),
        prototype = right.prototype
    while (true) {
        if (!proto) return false;
        if (proto === prototype) return true
        proto = Object.getPrototypeOf(proto)
    }
}
// 测试
function A() { }
let a = new A()
console.log(myInstanceof(a, A)) // true
相关推荐
儒雅的烤地瓜3 个月前
JS | JS中判断数组的6种方法,你知道几个?
javascript·instanceof·判断数组·数组方法·isarray·isprototypeof
赢乐1 年前
使用js编写一个函数判断所有数据类型的通用方法
prototype·数据类型·instanceof·tostring·call·typeof·原型方法
zhangbeizhen181 年前
Java中使用instanceof判断对象类型
java·list·instanceof·判断对象类型·json字符串解析