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'));
});