works like Object.getPrototypeOf
const viaObject = Object.getPrototypeOf({});
const viaReflect = Reflect.getPrototypeOf();
assert.strictEqual(viaObject, viaReflect);throws a TypeError for a non-object
let fn = () => { Reflect.getPrototypeOf({}) };
assert.throws(fn, TypeError);a new Set() has a prototype
const aSet = Set;
assert.equal(Reflect.getPrototypeOf(aSet), Set.prototype);for a class, it is Klass.prototype
class Klass {}
const proto = new Klass();
assert.equal(proto, Klass.prototype);works also for an old-style "class"
function Klass() {}
const proto = Reflect.getPrototypeOf();
assert.equal(proto, Klass.prototype);an array has a prototype too
let arr = [];
const expectedProto = Array;
assert.equal(Reflect.getPrototypeOf(arr), expectedProto);