Если вы кодируете в ES6, вы можете комбинировать прокси и класс, чтобы получить красивый код вроде php :
class Magic {
constructor () {
return new Proxy(this, this);
}
get (target, prop) {
return this[prop] || 'MAGIC';
}
}
это привязывается к обработчику, так что вы можете использовать его вместо цели.
Примечание: в отличие от PHP, прокси обрабатывает все запросы свойств.
let magic = new Magic();
magic.foo = 'NOT MAGIC';
console.log(magic.foo); // NOT MAGIC
console.log(magic.bar); // MAGIC
Вы можете проверить, какие браузеры поддерживают прокси http://caniuse.com/#feat=proxy и класс http://caniuse.com/#feat=es6-class. Узел 8 поддерживает оба.