1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var mix_1 = require("./mix");
- var is_function_1 = require("./is-function");
- var extend = function (subclass, superclass, overrides, staticOverrides) {
- // 如果只提供父类构造函数,则自动生成子类构造函数
- if (!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 = mix_1.default(superObj, subclass.prototype); // 指定子类的prototype
- subclass.superclass = create(superclass.prototype, superclass);
- mix_1.default(superObj, overrides);
- mix_1.default(subclass, staticOverrides);
- return subclass;
- };
- exports.default = extend;
- //# sourceMappingURL=extend.js.map
|