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

bind()兼容性处理

时间:2017-09-05 20:08:25      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:处理   contex   判断   slice   结果   解决   改变   执行   return   

bind()方法可以改变一个方法中的this,并且不立即执行该方法,但是该方法存在兼容性问题,IE9+,ff4+,chrome7+支持此方法,opera和safari不支持。因此我们需要使用apply()方法来解决bind()兼容性问题。

 1 //在Function的原型上定义myBind()方法
 2 Function.prototype.myBind=function myBind(context){
 3 //获取要操作的函数
 4 var _this=this;
 5 //获取实参(context除外)
 6     var args=Array.prototype.slice.call(arguments,1);
 7 //判断当前浏览器是否兼容bind()方法
 8 if(‘bind‘ in Function.prototype){
 9 //如果浏览器兼容bind()方法,则使用bind()方法,并返回bind()方法执行后的结果
10     return _this.bind(context,args);
11 }
12 //如果不兼容bind()方法,则返回一个匿名函数
13     return function(){
14         _this.apply(context,args);
15     }
16 }

 

bind()兼容性处理

标签:处理   contex   判断   slice   结果   解决   改变   执行   return   

原文地址:http://www.cnblogs.com/fxf111/p/7481642.html

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