⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.lib.js

📁 asp的bbs程序
💻 JS
字号:
/*
  #2008.01.17#
  ---
  Function类扩充
*/

// (this as `Class is Function`).func.Bind(this);
// ex: 
//   function Car () {this.name = 'car'};
//   Car.prototype.click = function () {alert(this.name);};
//   var car = new Car();
//   but.onclick = car.click.Bind(car);
Function.prototype.Bind = function (obj /* :Function */) {
    var method = this;
    temp = function () {
        return method.apply(obj, arguments);
    };
    return temp;
};

// extends
// (Target as `Class is Function`).Extends(this);
Function.prototype.Extends = function (Class /* :Function */) {
    if (!Class || !Class.constructor) return;
    var re = /^function\s+(\S+)\s*\(/;
    var c = re.exec(Class.constructor.toString());
    var _Class;
    if (Class = c && c[1] && (_Class = eval(c[1])).prototype) {
        if (!_Class.__super__) _Class.__super__ = {};
        c = re.exec(this.toString());
        if (_Class.__super__[c[1]]) return;
        _Class.__super__[c[1]] = this;
        this.apply(Class);
        for (var item in this.prototype) {
            if (! Class[item]) {
                Class[item] = this.prototype[item];
            }
        }
    }
};

// rebuild
// func = func.Rebuild(['arg1', 'arg2', 'arg3',..., 'argN'], func, 'var self = arguments.callee.arg');
Function.prototype.Rebuild = function (args, addon) {
    var r = ';var r_' + Math.floor(r = Math.random()) + '=' + r + ';';
    var f = (f = this.toString()).substring(f.indexOf('{') + 1, f.lastIndexOf('}'));
    var args = args.length > 0 ? "'" + args.join("','") + "'," : '';
    return eval('new Function (' + args + 'addon + ";" + f + r)');
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -