blear.classes.class

类的继承

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
blear.classes.class
1.1.76 years ago8 years agoMinified + gzip package size for blear.classes.class in KB

Readme

blear.classes.class
!npm modulenpm-imgnpm-url !build statustravis-imgtravis-url !coveragecoveralls-imgcoveralls-url

静态方法

.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(...);