javascript - 如何在 ECMA5(IE11) 中扩展 javascript 类?

标签 javascript jquery ecmascript-6 ecmascript-5

IE11 不支持 ECMA Script 6。 所以我不能在 IE11 中使用“类”语法。 那么,如何在IE11(ECMA5)中扩展obj?

//only ECMA6+ 
// do not work in IE11
    class ChildObj extends google.maps.LatLng {
        constructor(child) {
            super(Number(child.lat), Number(child.lng));
            this.additionalProp = child;
        }
    }
//ECMA5  -> ????

我不知道定义子类的正确方法是什么,例如上面显示的 ChildObj,在 ECMA5 中。

我认为 jquery $.extend 不是扩展,而是合并属性。 那么,如何在子类中调用父类的构造函数呢?

最佳答案

According to MDN doc ,你会这样做:

function childObj() {
    google.maps.LatLng.call(this);
}

childObj.prototype = Object.create(google.maps.LatLng.prototype);
childObj.prototype.constructor = Rectangle;

但是如果你想使用 ES6 组件但仍然有 ES5 代码,一个更简单的解决方案是使用转译器。例如babel会成功的。

关于javascript - 如何在 ECMA5(IE11) 中扩展 javascript 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539652/

相关文章:

php - 无法选择使用 jQuery Ajax 调用加载的 div 内的元素

JavaScript - 头部、主体还是 jQuery?

javascript,在reduce中带有扩展运算符的无法识别的字符

javascript - "Unexpected token import"实现原生 ES6 模块

javascript - 进入条件 block 后,假设没有异步操作改变条件是否安全?

javascript - 绑定(bind)范围对象的 Angularjs 数学

javascript - 您可以将 HTML 元素类名称存储到数组中,然后调用它以在 JQuery 属性中运行吗?

javascript - 提供 Rest API 时的跨站点来源问题

javascript - Jquery float 条反转 y 轴

jquery - 如何使用 jQuery 可排序接收和更新异步等待?