Object.isA

an isA operand that can receive string names as well as instances

JavaScript

Object.isA = function isA(instance, clss) {
    var type = typeOf(clss);
   
    if (type == 'string') {
        var clss_names = clss.split('.'),
            clss_name = clss_names.shift();

        clss = window[clss_name];

        if (!clss) return false;

        while (clss_name = clss_names.shift()) {
            if (!clss_name in clss) return false;
            clss = clss[clss_name];
        }
        type = typeOf(clss);
    }

    if (['function', 'class'].contains(type)) {
        return (instance instanceof clss);
    }

    return false;
}


var a = {
    b: new Class({})
};

var b = new Class({
    Extends: a.b
});

var b = new b;

var c = {
    c: {}
};

console.log(Object.isA(b, 'a.b'));
console.log(Object.isA(b, 'c.c'));