这个是之前一篇 (http://www.vilic.info/blog/archives/610) 的升级版, 添加了更强的对 “类” 的支持, 取消了Null类型, 顺便修正了一些bug.
脚本链接: http://www.vilic.info/vejis/vejis-mo.js
然后是用法:
/* 函数的用法 */
//创建一个函数并定义重载1
//这里也可以使用 var fn = _(); 创建空函数, 并在以后添加重载
var fn = _(function () {
alert(“No arguments!”);
});//重载2
fn._(String, function (str) {
alert(“You got me a string: ” + str + “.”);
});//重载3
fn._(String, Integer, function (str, n) {
alert(“The string is: ” + str + “; and the integer is: ” + n + “.”);
});fn();
fn(“test1”);
fn(“test2”, 123);/* 类的用法 */
//定义一个类
var C = class_(function () {
var x;//成员函数
this.getX = _(function () {
return x;
});/* 也可无构造函数 */
//构造函数重载1
C._(Integer, function (i) {
x = “Integer: ” + i;
});//构造函数重载2
C._(String, function (s) {
x = “String: ” + s;
});
});//创建两个C的实例
var c1 = new C(“abc”);
var c2 = new C(123);alert(c1.getX());
alert(c2.getX());