1.第一种方式
Function.prototype.bind = function() {
var fn = this,
args = Array.prototype.slice.call(arguments);
object = args.shift();
return function() {
return fn.apply(object, args.concat(Array.prototype.slice.call(arguments)))
}
}
2. 第二种方式
Function.prototype.bind = function(oThis) {
var fn = this,
args = Array.prototype.slice.call(arguments,1);
return function() {
return fn.apply(oThis, args.concat(Array.prototype.slice.call(arguments)))
}
}
function foo() {
return this.bar
}
var a = foo.bind({bar: 2},1);
var b = a.bind({bar: 3},2);
var c = b.bind({bar: 4},3);
console.log(c())
//第一种方式是4
//第二种方式是2
相关分类