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(代码片段