面试官:写一个instanceof叭

685 阅读1分钟

需要注意的点,不推荐使用__proto__获取隐式原型,使用getPrototypeOf()更好。

代码

 function myInstanceof(left, right) {
            let proto = Object.getPrototypeOf(left);
            let prototype = right.prototype
            while (proto) {
                if (proto === prototype) return true;
                proto = Object.getPrototypeOf(proto)
            }
            return false
        }

测试

let A = function () { }

        let a = new A()

        console.log(myInstanceof(a, A));

image.png


记录记录!