1、简单版
Function.prototype.bind = function (obj, arg) {
arg = Array.prototype.slice.call(arguments, 1);
var self = this;
return function (newArg) {
arg = arg.concat(Array.prototype.slice.call(newArg));
return self.apply(obj, arg);
};
}
2、完整版
Function.prototype.bind = function (obj, arg) {
arg = Array.prototype.slice.call(arguments, 1);
var self = this;
var bound = function (newArg) {
arg = arg.concat(Array.prototype.slice.call(newArg));
return self.apply(obj, arg);
};
var F = function () { };
F.prototype = self.prototype;
bound.prototype = new F();
return bound;
}