1.1.7 • Published 6 years ago

blear.classes.class v1.1.7

Weekly downloads
15
License
MIT
Repository
github
Last release
6 years ago

blear.classes.class

npm module build status coverage

静态方法

.alias(aliasName, originalName)

原型方法的别名。

var AA = Class.extend({
    constructor: function () {},
    a: function () {}
});

AA.alias('a2', 'a');
// AA.prototype.a2 === AA.prototype.a

.sole()

生成唯一的随机值,用于原型受保护的方法、属性,防止继承类将其覆盖。

var AA = Class.extend({
    constructor: function () {
        this[_protectedProperty] = 123;
        this[_protectedMethod] = function () {};
    },
});
var _protectedProperty = AA.sole();
var _protectedMethod = AA.sole();

.extend(prototype)

基于当前类扩展新的子类。

var AA = Class.extend({
    constructor: function () {}
});

var BB = AA.extend({
    constructor: function () {}
});

// BB 继承了 AA

.parent(instance, [arg1, arg2])parent[method](instance, [arg1, arg2])

var AA = Class.extend({
    constructor: function () {},
    a: function () {}
});

var BB = AA.extend({
    constructor: function () {
        // 调用父类构造函数
        BB.parent(this);
    }
});

BB.protyotype.b = function () {
    // 调用父类原型 a 方法
    BB.parent.a(this);
};

.method(protoName, factory)

var A = Class.extend({
    constructor: function () {}
});

A.method('get', function () {
    return 'get';
});

.ify(constructor)

转换构造函数,添加 extend 方法

var A = function(){};

A = Class.ify(A);
A.extend(...);