我应该如何将原型初始化转换为ES6

时间:2017-07-11 14:09:13

标签: javascript google-maps ecmascript-6 prototype es6-class

我正在尝试创建Google地图覆盖视图。我在ES5中有这个代码告诉我在我的标记原型中初始化一个对象,如下所示:

MainMarker.prototype = new google.maps.OverlayView();

如何将其完全转换为ES6?

对于继承,例如Child.prototype = Object.create(Parent.prototype),在ES6中,我们可以像

那样编写
class Child extends Parent {
    constructor () {
        super();
    }
}

但是第一个怎么样?

1 个答案:

答案 0 :(得分:2)

  

我在ES5中有这个代码告诉我在我的标记原型中初始化一个对象,如下所示:

MainMarker.prototype = new google.maps.OverlayView();

never was the correct way in ES5 1 无论如何,所以不要试图保持不良做法。
只是去

class MainMarker extends google.maps.OverlayView { … }

1:在这种特定情况下,无论使用new还是Object.create都没有区别,API docs明确指出" OverlayView构造函数保证是一个空函数。"。谷歌可能在他们的例子中使用了以前的语法,因为它更向后兼容。