手写instanceof

152 阅读1分钟
function myInstanceof(example, Ctor) {
    if (Ctor[Symbol.hasInstance]) {
        return Ctor[Symbol.hasInstance](example)
    }

    var proto = Object.getPrototypeOf(example)
    while (proto) {
        if (proto == null) {
            return false
        }
        if (proto == Ctor.prototype) {
            return true
        }
        proto = Object.getPrototypeOf(proto)
    }
}