KISSY 的 base 模块提供给我们一个基类, 整合了 attribute 功能, 让继承 base 的子类自动具有 attribute 的功能.

属性的使用见 attribute. 下面给出一个使用 base 的基本示例.

基本使用

new S.Base( config )

继承自 Base 的子类.

使用 S.Base 时, 虽然你还是可以通过 addAttr 添加支持需要支持 setter/getter 的属性, 但最好还是把这些属性和它们的配置定义在类的 ATTRS 成员中.


KISSY.ready(function(S) {
    // 自定义类
    function myClass(config) {
        myClass.superclass.constructor.call(this, config);
    }

    // 继承 Base
    S.extend(myClass, S.Base);

    // 增加属性
    myClass.ATTRS = {
        size: {
            value: 0,
            setter: function(v) {
                if (S.isString(v) && v.indexOf('inch')!== -1) {
                    return parseFloat(v)*10/3;
                }
                return parseFloat(v);
            },
            getter: function(v) {
                return v;
            }
        }
    };

    var cls = new myClass();

    // 绑定事件
    cls.on('afterSizeChange', function(ev){
        console.log('change '+ ev.attrName + ': '+ev.prevVal+' --> '+ev.newVal);
    });

    // 设置属性
    cls.set('size', 20);

    // 获取属性
    alert(cls.get('size'));

    // 重置
    cls.reset();
    alert(cls.get('size'));
});
home › base :

modules