ECMAScript Edition5 IE9+支持原生,作用为将一个对象的方法绑定到另一个对象上执行。
1 Function.prototype.bind = Function.prototype.bind || function(){ 2 // 该方法当前所属的对象. 3 var self = this; 4 var args = Array.prototype.slice.call(arguments); 5 // 绑定的对象. 6 var o = args.shift(); 7 // 如上操作后将绑定时的参数也绑定进来. 8 // 返回一个指定作用域调用的方法. 9 return function(){ 10 return self.apply(o, args.concat(Array.prototype.slice.call(arguments))); 11 }; 12 } 13 var o={ 14 v:100, 15 show:function(nm1,nm2){ 16 return this.v + "," + nm1 + "," + nm2; 17 } 18 }; 19 var o2={ 20 v:200 21 }; 22 var f=o.show.bind(o2,"test1"); 23 alert(f("test2"));