代码描述:Function.prototype.bind()方法用法。Function.prototype.bind()方法用法简单介绍代码
本章节通过代码实例简单对prototype.bind()方法做一下介绍,希望能够给对它还比较陌生的朋友带来一定帮助。 建议在阅读本章节之前事先参阅javascript this用法详解和javascript prototype原型简单介绍一章节。 大家可能遇到过这样的情况,为了在其他的函数中保持this上下文的一致性,会使用下面类似的代码:
<script> var obj={ show:function(){ }, done:function(){ }, getOther:function(func){ func() }, render:function(){ var that = this; this.getOther(function () { that.show(); that.done(); }); } } </script>
在以上代码中,将this指向对象的引用赋值给that,这样当调用obj.render()方法的时候,能够确保调用的show()方法和done方法是属于obj对象的,否则是调用的window对象上的方法。但是上面的方式稍显繁琐,ES5也提供了Function.prototype.bind(),解决上面的问题也就更为轻松,代码修改如下:
<script> render:function(){ var that = this; this.getOther(function () { this.show(); this.done(); }.bind(this)); } </script>
上面代码利用bind()实现了我们的要求,下面就介绍一下它的语法: 语法结构:
<script> fun.bind(thisArg[, arg1[, arg2[, ...]]]) </script>
此方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数. bind()的代码我们可以大概描述如下:
<script> Function.prototype.bind=function(thisArg,arg1,arg2) { var fn = this; return function() { return fn.apply(scope,arg1,arg2); }; } </script>
请绑定手机号,在继续操作
注意:只有绑定手机以后,才可使用网站全部功能