UNPKG

@antv/util

Version:

> AntV 底层依赖的工具库,不建议在自己业务中使用。

36 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var mix_1 = tslib_1.__importDefault(require("./mix")); var is_function_1 = tslib_1.__importDefault(require("./is-function")); var extend = function (subclass, superclass, overrides, staticOverrides) { // 如果只提供父类构造函数,则自动生成子类构造函数 if (!(0, is_function_1.default)(superclass)) { overrides = superclass; superclass = subclass; subclass = function () { }; } var create = Object.create ? function (proto, c) { return Object.create(proto, { constructor: { value: c, }, }); } : function (proto, c) { function Tmp() { } Tmp.prototype = proto; var o = new Tmp(); o.constructor = c; return o; }; var superObj = create(superclass.prototype, subclass); // new superclass(),//实例化父类作为子类的prototype subclass.prototype = (0, mix_1.default)(superObj, subclass.prototype); // 指定子类的prototype subclass.superclass = create(superclass.prototype, superclass); (0, mix_1.default)(superObj, overrides); (0, mix_1.default)(subclass, staticOverrides); return subclass; }; exports.default = extend; //# sourceMappingURL=extend.js.map