Предположу, что в примере вызова у вас опечатка, и вы хотели вызывать
test.on()
– со скобками.
Обернуть в
Proxy, но это не будет работать в старых браузерах и IE и вообще сомнительно, что именно это вам требуется. Может, пересмотреть весь код?
var test=function(){
console.log("method:", arguments[0]);
};
var handler = {
get: function( target, name) {
var _method;
if(name in target) {
return target[name];
} else {
return target.bind( null, name); // если не определено свойство, передаем его 1-м аргументом
}
}
};
test = new Proxy( test, handler);
test.on(); // method: on
test.blabla(); // method: blabla
test(); // method: undefined