码迷,mamicode.com
首页 > 其他好文 > 详细

bind方法的一些心得

时间:2017-02-11 12:12:56      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:url   调用   而且   ffd   data-   改变   this   log   支持   

众所周知,改变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方法的一些心得

标签:url   调用   而且   ffd   data-   改变   this   log   支持   

原文地址:http://www.cnblogs.com/sincere-x/p/6388800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!