首页 > 其他 > 详细

bind()兼容性处理

时间:2017-09-05 20:04:28      阅读:268      评论:0      收藏:0      [点我收藏+]

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()兼容性处理

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!