bind()兼容性处理

Posted fxf111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bind()兼容性处理相关的知识,希望对你有一定的参考价值。

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()兼容性处理的主要内容,如果未能解决你的问题,请参考以下文章

如何在多片段活动中处理 onContextItemSelected?

httpd Server not started: (13)Permission denied: make_sock: could not bind to address [::]:8888(代码片段

十条jQuery代码片段助力Web开发效率提升

十条jQuery代码片段助力Web开发效率提升

实用代码片段将json数据绑定到html元素 (转)

js学习总结----DOM2兼容处理顺序问题