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
添加回答
举报
0/150
提交
取消