Proxy merged with Object
by SSRRDD
JavaScript
(function()
{
class Test1
{
constructor()
{
this.someProperty = 'la-la';
this.someMethod = function()
{
console.log("someMethod");
}
return new Proxy(this,
{
get: function(target, property)
{
if (target[property] === undefined)
{
return function()
{
console.log('attempt to call an undefined method', property, arguments);
};
}
else
{ //return target[property];
return Reflect.get(...arguments); // can have a reciever function: Reflect.get(target, propertyKey[, receiver])
}
}
});
}
somePrototypeMethod(value)
{
console.log("somePrototypeMethod", value);
}
}
var testO = new Test1();
console.log(testO);
console.log(testO.someProperty);
testO.someMethod();
testO.somePrototypeMethod(3);
testO.unknownMethod('1', 2);
})();