是否有可能在JavaScript中代理扩展类

我试图代理一个节点模块内的inheritance结构,并允许客户端实例化一个新的A类。当前当试图访问B类的父方法,我得到一个a.parentMethod is not a function

 handler.js -> module.exports = { get(target, key, receiver) { return target.getAttribute(key) }, set(target, key, value, receiver) { return target.setAttribute(key, value) } } A.js -> const handler = require('handler') class B { constructor(data) { this.data = data } parentMethod() { ... do stuff } } class A extends B { constructor(data){ super(data) } } module.exports = function(data) { return new Proxy(new A(data), handler) } //// const A = require('A') var a = new A a.parentMethod() 

我在哪里错了这个结构? 我是新来的代理!

谢谢

编辑 –

更多内容:

我想基于我定义的valueSchema保持属性集同步。 当我设置Artwork.title时,我需要Artwork ['Artwork Title']以相同的值进行更新。 同样,当我检索Artwork.title时,我得到了Artwork ['Artwork Title']的价值。 希望这会有所帮助。 我被困在上面的错误,所以我不能确定我写的实际工作呢! 我试图debugging为什么不能find第一个function…

 class Instance { constructor(data) { this._valueAttributes = {} } setAttribute(key, value) { if (this._isValueAttribute(key)) { return this._getSetValueAttribute(key, value) } throw Error('Cannot set invalid property '+key+' on instance.') } getAttribute(key) { if (this._isValueAttribute(key)) { return this._getSetValueAttribute(key) } } _getSetValueAttribute(key, value) { let schemaKey = this._getSchemaKey(key) if (_.isFunction(schemaKey)) { return alias(data) } if (value === undefined) { return this._valueAttributes[schemaKey] } return this._valueAttributes[schemaKey] = value } _isValueAttribute(key) { return _.keys(this._valueSchema).indexOf(key) === -1 } } class Artwork extends Instance { constructor() { this._valueSchema = { medium: 'Artwork Medium', title: 'Artwork Title' } } } /// a = new Artwork a.title = 'thing' a['Artwork Medium'] = 'medium'; 

我需要

 a.title == a['Artwork Title'] a['Artwork Medium'] == a.medium 

这很可能是我把这件事全部搞砸了。 我假设我可以从父级访问孩子的__valueSchema。 这不可能吗?