Version: 0.0.0.1
选择的是BSD协议. 现在有接近200行了. 主要功能是createFunction. 下面来一段演示的代码:
vejis.use(vejis, true);
var test = createFunction();
test._(‘string’, function (name) {
alert(‘name: ‘ + name);
});test._(‘int’, function (age) {
alert(‘age: ‘ + age);
});
呵呵, 看出来了吧, 函数重载. 不过在这个简单的例子上, 你可能觉得有点多余, 看看这个, 这个是vejis里的一个函数, 有4个重载:
var argsCountError = this.argsCountError = createFunction();
argsCountError._(‘integer’, function (count) {
if (arguments.callee._caller.arguments.length != count)
error(‘The method needs ‘ + count + ‘ argument’ + (count > 1 ? ‘s.’ : ‘.’));
});argsCountError._(‘integer, integer’, function (least, most) {
if (least >= most) error(‘”least” must be smaller than “most”‘);
var count = arguments.callee._caller.arguments.length;
if (count < least) error(‘The method needs at least ‘ + least + ‘ argument’ + (least > 1 ? ‘s.’ : ‘.’));
if (count > most) error(‘The method needs at most ‘ + most + ‘ argument’ + (most > 1 ? ‘s.’ : ‘.’));
});argsCountError._(‘null, integer’, function (least, most) {
arguments = arguments.callee._caller.arguments;
least = 0;
argsCountError(least, most);
});argsCountError._(‘integer, null’, function (least, most) {
arguments = arguments.callee._caller.arguments;
most = 25;
argsCountError(least, most);
});
目前为止, 变量类型支持string, number, number:integer, boolean, object, object:array, object:null, function, 考虑到不同人的习惯, integer和boolean分别可以简写作int和bool. 个人觉得在函数重载很多, 而调用次数不多(其实只要不是大数量的枚举, 遍历什么的, 都不算多)时, 这个功能是非常实用的.
另外vejis.use(namespace, overwrite)也是个比较实用的东西, 虽然目前功能还非常简单, 但以后会慢慢增强.
其他的很弱, 也没什么特色了. 慢慢来.