【发布时间】:2018-07-05 19:27:33
【问题描述】:
我正在尝试创建一个自定义 Google 地图对象,该对象使用原型继承将它没有的任何功能代理到 Google 地图对象。
到目前为止,这是我想要实现的一个非常简单的示例:
export default class MapProxy {
constructor(element, options) {
this.markers = {};
google.maps.Map.apply(this, arguments)]
}
this.hasMarkers = () => {
return (Object.keys(this.markers).length > 0);
};
}
MapProxy.prototype = Object.create(google.maps.Map.prototype);
这工作正常,但我覆盖了我的 MapProxy 的原型,因此我必须在我的构造函数中将我的函数定义为 this.myFunction。现在每个 Google 地图实例都创建了自己的自定义函数,而不是作为参考。
现在我可能不会得到 15 个 Google Map 实例,但有没有更好的策略来继承 Google Maps 对象的原型函数而不覆盖我的 ProxyMap 原型函数?
【问题讨论】:
标签: javascript inheritance ecmascript-6 prototype proto