首页 > 代码库 > bind方法的一些心得

bind方法的一些心得

众所周知,改变this指向的一些方法包括call,apply还有bind方法,bing方法是ECMAscript5发布的,所以只能在ie9及以上浏览器支持,既然有了apply和call方法,那为何还要出bind方法呢?当然他有一些过人之处,下面听我慢慢道来:    

  1.bind方法能够保持参数个数:

  例:   function xxx(a,b,c){

       return a+b+c;

     }

     调用bind方法

     var a,b

     a = xxx.bind(null,1)   //bind方法第一个参数是改变这个this的指向,这里不需要改变this指向,所以我传入了一个null; 第二个及后面的参数则是对应传入xxx函数的参数;

     console.log(a(2,3))   //result 6;  为什么会输出6呢?  而且我也只传了两个参数啊,xxx函数可是有三个形参呢?

  解:

     首先,你xxx.bind(null,1)并把结果赋给了a; 这就代表你已经把a函数的第一个参数传入了1,后面你再使用a函数时就只用传后面两个参数了,而且你可以继续给a标签再使用bind方法(b = a.bind(null,2))。 这个你再调用b函数的时候只用传一个参数了,以为a已经传了一个,赋值给b的时候又传入了一个,所以b调用时只用传一个了,这样的好处是对于参数的传递会方便很多;bind还有一个改变this的作用,但这个的用法和call函数的用法是一样的,这里就不用细讲了。。。

 

 

 

 

                                                                                            ——Sincere 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

bind方法的一些心得