Function.prototype.before = function (func) {
var me = this;
return function () {
if (func.apply(this, arguments) === false) {
return false;
}
return me.apply(this, arguments);
}
}
// 先执行func
Function.prototype.before2 = function (func) {
var me = this;
return function () {
var ret = func.apply(this, arguments);
if (!ret) {
return false;
}
return me.apply(this, arguments);
}
}
// 先执行 after,再执行func
Function.prototype.after = function (func) {
var me = this;
return function () {
var ret = me.apply(this, arguments);
if (ret == false) {
return false;
}
func.apply(this, arguments);
return ret;
}
}
var bind = function (fn, context) {
return function () {
return fn.apply(context, arguments)
}
};
var curry = function (fn) {
var args = Array.prototype.slice.call(arguments, 1);
return function () {
var innerArgs = Array.prototype.slice.call(arguments);
var finalArgs = args.contact(innerArgs);
return fn.apply(null, finalArgs);
}
};
var bind2 = function (fn, context) {
var args = Array.prototype.slice.call(arguments, 2);
return function () {
var innerArgs = Array.prototype.slice.call(arguments);
var finalArgs = args.contact(innerArgs);
return fn.apply(context, finalArgs);
}
}