bind()函数是Function原型上的一个属性,当某个函数调用此方法时,可以通过向bind()函数传入执行对象和调用bind的函数的参数来改变函数的执行对象

1 /*问题:改变func执行环境,使之输出1*/
2 var User = {
3     count: 1,
4     getCount: function() {
5         return this.count;
6     }
7 };
8 var func = User.getCount.bind(User);
9 func();

IE6,7,8的兼容bind()函数

1 Function.prototype.bind = Function.prototype.bind || function(context) {
2     var self=this;
3     var args=Array.prototype.slice.call(arguments,1);
4     return function(){
5         return self.apply(context,args);
6     };
7 };

 

1 /*自定义函数*/
2 function bind(fn,context){
3     var args=Array.prototype.slice.call(arguments,2);
4     return function(){
5         var innerArgs=Array.prototype.slice.call(arguments);
6         var finalArgs=args.concat(innerArgs);
7         return fn.apply(context,finalArgs);
8     };
9 }

 

相关文章:

  • 2021-05-29
  • 2021-10-04
  • 2022-01-16
  • 2022-01-03
  • 2021-05-18
  • 2022-12-23
  • 2021-11-19
  • 2022-02-09
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案