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

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

实现步骤:

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

具体实现:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值